如何解决有没有办法使session.destroy方法在MERN堆栈应用程序中工作?
我已经开始学习如何使用快速会话,并尝试在简单的登录MERN堆栈应用程序中创建和销毁会话。当我从Postman应用程序调用登录和注销发布方法时,该会话正在正确创建和销毁。但是,当我使用带有React的axios进行相同操作时,将在登录时创建会话,但是即使发送相同的请求正文,注销时也不会破坏会话。请帮助我找到注销时如何销毁会话存储中的会话的方法。
后端(node.js)的登录控制器
createTopTabs = () => {
return(
<MaterialTopTabs.Navigator initialRouteName="Tab_Daily"
tabBarOptions={{
showIcon: true,style: { backgroundColor: '#C4e672' },labelStyle: { fontSize: 12,fontWeight: 'bold' },/* tabStyle: { width: 100 },*/
tabStyle: { height: 50 },}}>
<MaterialTopTabs.Screen
name="Tab_ToDoNote"
component={TabToDoNote}
options={
{
title: '',/* tabBarLabel: "Daily",*/
tabBarIcon: () =>
(
<Icons_SimpleLine
style={
[
{
color: 'red',}
]
}
size={25}
name={'note'}
/>
)
}
}
/>
<MaterialTopTabs.Screen
name="Tab_Daily"
component={TabDaily}
options={
{
title: '',tabBarLabel: "Daily",tabBarIcon: () =>
(
<Icons_MaterialCommunity
style={
[
{
color: 'red'
}
]
}
size={18}
name={'calendar-today'}
/>
)
}
}
/>
<MaterialTopTabs.Screen
name="Tab_Monthly"
component={TabMonthly}
options={
{
tabBarLabel: "Monthly",tabBarIcon: () =>
(
<Icons_MaterialCommunity
style={
[
{
color: 'red'
}
]
}
size={18}
name={'calendar-month-outline'}
/>
)
}
}
/>
<MaterialTopTabs.Screen
name="Tab_Yearly"
component={TabYearly}
options={
{
tabBarLabel: "Yearly",tabBarIcon: () =>
(
<Icons_MaterialCommunity
style={
[
{
color: 'red'
}
]
}
size={18}
name={'calendar-multiple'}
/>
)
}
}
/>
</MaterialTopTabs.Navigator>
);
}
后端(node.js)上的注销控制器
exports.userLogin = (req,res,next)=>{
const userCreds = {
email:req.body.email,password:req.body.password
}
User.findOne({email:userCreds.email}).then(user=>{
bcrypt.compare(userCreds.password,user.password,(err,result)=>{
if(result){
// Setting session properties
req.session.isLoggedIn = true;
req.session.user = user;
res.send(req.session);
}
else
res.send({isLoggedIn:false});
})
}).catch(err=>{
res.send({userExists:false});
});
}
使用axios发布注销请求:
exports.userLogout = (req,next)=>{
req.session.destroy(err=>{
if(err)
console.log(err);
else{
req.session = null;
res.send({userLogin:false});
}
});
}
会话配置:
logoutHandler = ()=>{
axios.post('/user/logout',{
email : this.props.userState.email,password:this.props.userState.password
}).then(res=>{
this.props.onUserLogout();
console.log(res.data);
}
);
}
请帮助我。预先谢谢.. !!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。