我有一个Angular / Express应用程序,我正在尝试实现某种宁静的身份验证。 Express应用程序具有Passport标准用户名/通行证登录和Redis会话。成功登录后,我返回会话ID和angular,然后将其发送到标头中的每个请求。问题是我不知道怎么让Express使用它作为会话ID。我曾尝试在中间件中写入req.sessionId但没有成功。
如何使用标头或查询字符串作为发送会话ID的方法。
答案 0 :(得分:0)
我遇到了同样的问题。这似乎对我有用,尝试一下,让我知道它是否适合你:
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()
}
})
缺点是它会让会话两次。我应该写一个会话处理程序的子类,但我现在很懒。
更新: 我决定不懒和叉快递。我提交了一个拉取请求,但在此之前您可以找到它here。