老师请问退出登陆的处理

来源:10-8 express处理session

hpbrave

2021-07-03

我搜了一下问答里其他关于“退出登陆”的回答,还是有地方不太明白。
这是我服务器端的代码:

router.post('/logout', loginCheck, function(req, res, next){
    req.session = {};
    req.cookies = {};
    console.log('backend logout');
    console.log(req.session);
    res.json(
        new SuccessModel()
    ) 
})

是不是把session设为空以后,res.json就发不出东西了 呢?前端也确实收不到回应。
这是我前端的代码:

$('#logoutBtn').click((event)=>{
    const url = '/api/user/logout';
    post(url).then(res => {
        if(res.errno == 0){          
	        location.href = '/index.html'; //跳转到登陆页面  
            console.log('log out successfully')
        }else{
            console.log('logout failed')
        }
    })
    location.href = '/index.html';
});

页面跳转到index.html之后,不知道如何判断是否真的退出登陆了呢?我把登陆以后的cookie中的connect.sid的值和退出以后的值比较了一下,一模一样,感觉好像并没有退出。。

这是跳转到index.html以后,http请求中的内容
图片描述

这是浏览器收到的api/user/logout的request和response
图片描述
非常感谢。

这个问题解决了,服务器端代码更正如下:

router.post('/logout', loginCheck, function(req, res, next){
    req.session.username = '';
    res.json(
        new SuccessModel()
    ) 
})

直接把req.session设为空不行,要specifically把里面的username设为空才行。

写回答

2回答

双越

2021-07-10

//img.mukewang.com/szimg/60e956c6094877cb17020546.jpg

接口报错了,504 一般是服务端连接其他服务(如数据库)超时了

0
5
hpbrave
回复
双越
感谢老师回复。试了,不行,服务器端给了500的报错,浏览器也就给了个500 internal server error的报错。可能还是得把用户名设为空。。
2021-07-27
共5条回复

双越

2021-07-03

前端收不到回应,你看下 chrome devTools 的 http 请求返回了什么?截图我看下

0
5
hpbrave
回复
双越
老师我知道从哪儿看了,把跳转关掉以后就能看到了,我把logout的相关信息贴到原贴里了啊。非常感谢。
2021-07-10
共5条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程