我有一个 Angular/Express 应用程序,正在尝试实现某种 restful 身份验证。 Express 应用程序具有 Passport 标准用户名/密码登录和 Redis session 。成功登录后,我返回 session ID 和 Angular ,然后将其发送到 header 中的每个请求。问题是我不知道如何让 Express 使用它作为 session ID。我曾尝试在中间件中写入 req.sessionId 但没有成功。
如何使用 header 或查询字符串作为发送 session ID 的方式。
最佳答案
我遇到了同样的问题。这似乎对我有用,试试看,如果它对你有用,请告诉我:
app.use(function (req, res, next) {
// I'm pulling it from the query string. You could use headers.
if (req.query.session) {
req.sessionID = req.query.session;
req.sessionStore.get(req.query.session, function (err, sess) {
// This attaches the session to the req.
req.sessionStore.createSession(req, sess);
next()
})
} else {
next()
}
})
缺点是它确实获得了两次 session 。我应该编写一个 session 处理程序的子类,但我现在很懒。
更新: 我决定不偷懒了,fork express-session。我提交了拉取请求,但在那之前你可以找到它 here .
关于javascript - 在 Express 中手动设置 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060800/