![](https://csdnimg.cn/release/download_crawler_static/87763193/bg1.jpg)
问题复现:
连接钱包后,会调用函数,弹出窗口让用户签名
if (signatureMessage) {
await signMessageAsync({
message: signatureMessage,
});
dispatch(changeHasLoggedToTrue());
}复制代码
有了签名后,会调用 signIn 来设置本地存储
signIn 函数
const signIn = async (signature) => {
try {
const signinRes = await API.post(`/auth/signin`, {
address: address,
signature: signature,
});
const accessToken = signinRes.data?.data?.access_token;
setLocalStorage("accessToken", accessToken);//设置本地存储
refreshAPIToken();
addressInfo.current.address = address;
} catch (err) {
console.log("signin");
showMessage({
type: "error",
title: "Failed to sign-in",
body: err.message,
});
disconnect();
}
};复制代码
如果用户连接了钱包就会调接口,获取用户是否是管理员 通过 RTK(redux toolkit)
存储在 isAdmin 变量里
const res = await API.get(`/member/${address}`);
if (!res.data.data) {
dispatch(changeIsAdminToFalse());
return;