javascript - 不使用 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")
}
})
解决方案
req.sessionID
是通过中间件添加到 req 对象的自定义字段,在某些情况下,这将是 via,express-session
但您可以随意附加它。例如,您可以创建一些中间件来读取 cookie 或标头值,提取您定义为会话 id 的内容,并将其直接附加到 req 对象。
如果您正在使用其他类型的身份验证,那么引入一个中间件来翻译它应该是相当简单的。但是,您目前没有建立身份验证,那么您将没有数据来完成这项工作。
推荐阅读
- android - 有什么方法可以测试新的 google play referrer api 而无需在 Google Play 商店中发布应用程序?
- react-native - React Native Camera - 如何使捕获按钮粘在手机屏幕的一侧?
- r - R:更改列标签的高度/位置
- python - 串联多个神经网络的方法(非并行)
- javascript - Microsoft Bot Framework - 读取 bot 文件时出错,但所有环境变量都正确?
- angular6 - 如何以角度 6 获取数据对象的长度
- android - 使用 fragmentManager.popBackStackImmediate() 时出现 IllegalStateException;
- json - 在 JSON 返回中包含类(静态)变量
- json - 在 Xcode 9 中使用 Alomofire 从服务器获取数据
- java - Java程序不会打印出数组中的最小数字