javascript - 在 Express 中手动设置 session ID

标签 javascript angularjs node.js express passport.js

我有一个 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/

相关文章:

javascript - Ruby on Rails Partial 不会使用 AJAX 刷新,但表示它正在控制台中呈现部分

java - 如何将表单数据获取到 Angular Controller 以及如何将其传递给 servlet?

javascript - 获取 Canvas 的图像线坐标

javascript - 未捕获的语法错误 : Unexpected token s in JSON at position 0 at JSON. 解析(<匿名>)

javascript - 是否可以根据配置更改在 AngularJS 中使用不同的模块?

javascript - console.log 在 Angular Controller 中不起作用

javascript - Strongloop Passport.js 身份验证 - "Failed to obtain access token"

node.js - Express session MongoDB 存储 : connect-mongo vs connect-mongodb-session

node.js - Node.js 12 的 TypeScript tsconfig 设置?

javascript - Aurelia 中的 Angular 服务?