【问题标题】:Express cookie-session not creating cookie on client sideExpress cookie-session 不在客户端创建 cookie
【发布时间】:2021-02-04 21:04:18
【问题描述】:

我有一个简单的 ExpressJS 应用程序,它使用 cookie-session 创建一个 cookie。我定义了一些路由,但没有一个返回 cookie。 cookie-session 的文档说 req.session 需要更改以设置 cookie,这就是我正在做的,但它不起作用。当我在 Chrome 中检查应用程序 cookie 时,我没有看到任何 cookie。我的应用如下所示:

const express = require('express');

const cookieSession = require('cookie-session');
const { v4: uuid } = require('uuid')

const app = express();

app.use(express.json())

app.use(cookieSession({
  name: 'shortlinks',
  keys: [process.env.SESHSECRET],
  maxAge: 30 * 24 * 60 * 60 * 1000 // 30 days
}))


app.use(function(req, res, next) {
  console.log(`${req.method} ${req.url}`);
  req.session.id = (req.session.id || uuid());
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', '*');
  next();
})

app.get(
  '/api/links',
  (req, res, next)=> {
    res.json(readDb());
    next();
  }
)

我必须做什么才能创建 cookie?

【问题讨论】:

  • 您确定没有创建 cookie 吗?您可以尝试检查您的一条快速路线。
  • @Take-Some-Bytes 如何准确检查?
  • 我很确定您可以从 req.headers.cookie 属性中看到。在那里,您将看到Cookie HTTP 标头,如果设置了 cookie,您应该可以在那里看到它。

标签: node.js express cookies cookie-session


【解决方案1】:

我遇到了同样的问题,我使用了“cookies”库,对我来说效果很好...... https://www.npmjs.com/package/cookies

1.npm 卸载 cookie-session //用于删除旧的

2.npm 安装cookies //安装cookies 然后像这样使用它

const Cookie = require('cookies')

//inside your route set the token
   const cookie = new Cookie(req ,res ,{})
  cookie.set('token',accessToken{signed:false,secure:false,httpOnly:true})
//get the token back
    const token = cookie.get('token',{signed:false})
console.log(token)

【讨论】:

    猜你喜欢
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2019-05-30
    • 2021-04-04
    • 2017-05-31
    • 2021-04-03
    相关资源
    最近更新 更多