首页 > 解决方案 > 在 express 发送到客户端之前获取 cookie 的值 / 将 cookie 值存储在会话存储中

问题描述

我正在使用passportjsexpress-session创建一个基于 cookie 的会话。我想将正在发送的 cookie 的值存储到会话存储中。但由于它是一个仅限 HTTP 的 cookie,因此无法通过 javascript 访问它。我尝试从 javascript 读取set-cookie标头,但不适用于仅 HTTP cookie。

为了克服这个问题,我尝试了一种可以将 cookie 发送到客户端但在单独的标头中或可能在 JSON 响应中的方法。但我在这里没有成功。就在将响应发送给客户端之前,我尝试获取标头,request.getHeaders()但它没有 cookie 标头(因此我没有获得 cookie 值)

以下是passportjs用于建立会话的片段。

app.get('/login', function(req, res, next) {
    passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err); }
    if (!user) { return res.redirect('/login'); }
    req.logIn(user, function(err) {
        if (err) { return next(err); }
        return res.redirect('/users/' + user.username);
    });
    })(req, res, next);
});

有没有办法在发送给客户端之前使用 express 访问 cookie 值?

我也尝试过是否可以在其中找到 cookie 值,request.session.cookie但该对象没有发送给客户端的 cookie 值。

标签: node.jsexpresssessioncookiespassport.js

解决方案


推荐阅读