问题描述
我有一个简单的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)