Express cookie会话未在客户端创建cookie

问题描述

我有一个简单的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,next)=> {
    res.json(readDb());
    next();
  }
)

要创建Cookie,我该怎么做?

解决方法

我遇到了同样的问题,并且我使用了'cookies'库,我为我工作得很好... https://www.npmjs.com/package/cookies

1.npm卸载cookie会话 //删除旧的

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

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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...