Mongodb 登录时强制注销
我是使用这个框架的新手,所以请耐心听我说 我尝试在Auth Provider中遵循文档(3.12.1),并能够从后端对用户进行身份验证 但是,此代码Mongodb 登录时强制注销,mongodb,express,mongoose,react-admin,Mongodb,Express,Mongoose,React Admin,我是使用这个框架的新手,所以请耐心听我说 我尝试在Auth Provider中遵循文档(3.12.1),并能够从后端对用户进行身份验证 但是,此代码 logout: () => { localStorage.removeItem("auth"); return Promise.resolve(); }, 持续将我注销,提示我请登录以继续 这是我的密码 authProvider.js const authProvider = { logout
logout: () => {
localStorage.removeItem("auth");
return Promise.resolve();
},
持续将我注销,提示我请登录以继续
这是我的密码
authProvider.js
const authProvider = {
logout: () => {
localStorage.removeItem("auth");
return Promise.resolve();
},
login: ({ username, password }) => {
const request = new Request("http://localhost:3000/api/auth", {
method: "POST",
body: JSON.stringify({ username, password }),
headers: new Headers({ "Content-Type": "application/json" }),
});
return fetch(request)
.then((response) => {
if (response.status < 200 || response.status >= 300) {
throw new Error(response.statusText);
}
return Promise.resolve();
})
.then((auth) => {
localStorage.setItem("auth", JSON.stringify(auth));
})
.catch(() => {
throw new Error("Network error");
});
},
checkError: ({ status }) => {
if (status === 401 || status === 403) {
localStorage.removeItem("username");
return Promise.reject();
}
return Promise.resolve();
},
checkAuth: () => {
localStorage.removeItem("username");
return localStorage.getItem("username")
? Promise.resolve()
: Promise.reject();
},
getPermissions: () => Promise.resolve(),
};
export default authProvider;
好吧,据我所知-您的
checkAuth
函数将始终拒绝承诺,它会自动重定向到注销
为什么要在localStorage中设置auth
,然后在选中auth时搜索username
(尽管一开始总是删除它)
您应该同步这两个功能,并且应该可以正常运行
{
"success": true,
"message": "Successfully Logged In!",
"userData": {
"user_id": "601d25ca48305c2ef1e6a42c",
"firstName": "test",
"lastName": "test",
"username": "test@mail.com",
"token": "eyJhbGciOiJIUzI1NiJ9.NjAxZDI1Y2E0ODMwNWMyZWYxZTZhNDJj.WvYB9-H2kVTtCvRB4YumJe17EIIb0Kiz2t8h1g-IcwY"
}
}