node.js - 在 express 发送到客户端之前获取 cookie 的值 / 将 cookie 值存储在会话存储中
问题描述
我正在使用passportjs和express-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 值。
解决方案
推荐阅读
- java - Hazelcast 谓词在重负载期间卡住
- c++ - C++ - 如何在函数内将数组传递给采用 int * 类型的函数
- php - 如何在php中实现多个搜索过滤器
- sql - 使用 SQL 从数据库中获取某些记录
- dart - 如何获取特定月份的天数?
- javascript - 如何在 react-hotkeys 中选择 alt+anykey 或 shift+anykey?
- laravel - Laravel Passport CreateFreshApiToken 初始登录和工作流程
- angular - 如何使用 Angular 6 实现 LoginComponent?
- listview - 将数据添加到第一个索引后,ListView 跳转到顶部
- css - 样式“word-break: break-word”是怎么回事?