React 查询 - 身份验证流程

本文介绍了如何在React应用中使用React Query构建身份验证流程,包括注册、登录、用户状态管理和登出。通过`useMutation`创建注册和登录突变,利用`useQuery`管理用户数据,结合本地存储实现用户持久化。最后展示了使用自定义`useSignOut`挂钩实现登出功能。
摘要由CSDN通过智能技术生成

React 查询 - 身份验证流程
React 查询(6 部分系列)
1个
反应查询 - useQuery
2个
反应查询 - useMutation

还有2个零件…
5个
React 查询 - 身份验证流程
6个
React Query - 过滤你的数据
每个应用程序都应该处理身份验证流程;在本文中,您将了解如何使用 React Query 在 React 应用程序中构建身份验证流程。

报名
构建身份验证流程的第一步是注册操作。正如您在本系列中已经了解到的那样,您应该构建一个变异来执行此操作。一个可能的解决方案可能是这个
async function signUp(email: string, password: string): Promise {
const response = await fetch(‘/api/auth/signup’, {
method: ‘POST’,
headers: {
‘Content-Type’: ‘application/json’
},
body: JSON.stringify({ email, password })
})
if (!response.ok)
throw new ResponseError(‘Failed on sign up request’, response);

return await response.json();
}

type IUseSignUp = UseMutateFunction<User, unknown, {
email: string;
password: string;
}, unknown>

export function useSignUp(): IUseSignUp {
const queryClient = useQueryClient();
const navigate = useNavigate();
const { enqueueSnackbar } = useSnackbar();

const { mutate: signUpMutation } = useMutation<User, unknown, { email: string, password: string }, unknown>(
({
email,
password
}) => signUp(email, password), {
onSuccess: (data) => {
// TODO: save the user in the state
navigate(‘/’);
},
onError: (error) => {
enqueueSnackbar(‘Ops… Error on sign up. Try again!’, {
variant: ‘error’
});
}
});

return signUpMutation
}``
通过创建这样的突变,您可以以一种非常简单明了的方式构建注册。

现在使用useSignUp钩子,您可以获得突变并调用注册请求以在您的系统中创建一个新用户。正如您所注意到的,代码非常简单;该signUp方法调用 API 发布新用户的数据并返回保存在数据库中的用户数据。然后使用useMutation挂钩,您可以构建突变来处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值