首页 > 解决方案 > 不使用 express-session 从 req 对象获取 sessionID

问题描述

我在某处听说我可以在调用的 req 对象中使用一个属性,sessionID但是当我使用它时,它是未定义的。该属性未设置。有没有办法在不使用 express 会话的情况下唯一标识客户?因为它需要我重写我的整个后端。

router.post('/signup', function(req, res) {
    console.log(req)
    var signup = auth.signup(req.body.un, req.body.email, req.body.pw, req.body.pc, req.sessionID);
    if (signup !== 1) {
        res.render("signup", { title, err: signup })
    } else {
        res.redirect("/dashboard")
    }
})

标签: javascriptexpresssession

解决方案


req.sessionID是通过中间件添加到 req 对象的自定义字段,在某些情况下,这将是 via,express-session但您可以随意附加它。例如,您可以创建一些中间件来读取 cookie 或标头值,提取您定义为会话 id 的内容,并将其直接附加到 req 对象。

如果您正在使用其他类型的身份验证,那么引入一个中间件来翻译它应该是相当简单的。但是,您目前没有建立身份验证,那么您将没有数据来完成这项工作。


推荐阅读