为什么在login-test中一直获取不到session呢

来源:7-7 session演示

weixin_慕妹1486836

2022-03-19

http://localhost:9000/api/user/login 已经在这个路由设置了cookie

1.路由

    //1. 这是登录接口 
    if (method === 'GET' && req.path === '/api/user/login') {
      
        const { username, password } = req.query
        const result = login(username, password)

        return result.then(data => {
            if (data.username) {
                
                // 登录成功设置session
                req.session.username = data.username
                req.session.realname = data.realname

                console.log('show session:', req.session);

                return new SuccessModel()
            } else {
                return new ErrorModel('账号密码错误')
            }
        })
    }
    // 登录测试
    if (method === 'GET' && req.path === '/api/user/login-test') {
        console.log("test req.session", req.session);
        if (req.session.username) {
            return Promise.resolve( new SuccessModel({
                session:req.session
            }))
        } 
        return Promise.resolve(new ErrorModel('尚未登录'))
    } 

2.app.js

    let needSetCookie = false
    let userId = req.cookie.userid
    if (userId) {
        if (!SESSION_DATA[userId]) {
            SESSION_DATA[userId] = {}
        }
    } else {
        needSetCookie = true
        userId = `${Date.now()}_${Math.random()}`
        SESSION_DATA[userId] = {}
    }
    req.session = SESSION_DATA[userId]
写回答

1回答

双越

2022-03-19

登录测试路由中,打印一下 SESSION_DATA 有什么内容?session 的数据都存储在 SESSION_DATA

0
1
weixin_慕妹1486836
已解决, 是因 let userId = req.cookie.userid 应该改成 let userId = req.cookie.userId, 大小写问题, 导致每次获取的cookie的userId都不一样
2022-03-19
共1条回复

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

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

4122 学习 · 2022 问题

查看课程