Node.js Express/Passport未为supertest代理设置cookie
我正在尝试使用supertest和mocha对我的Express服务器进行一些集成测试。用户通过Passport LocalStrategy进行身份验证,我正在使用cookie会话设置会话cookie。在浏览器和邮递员中都可以正常工作。但是,我无法使它与supertest结合使用:Express response在注册/登录路由上不包含cookie,因此我无法发出任何经过身份验证的请求Node.js Express/Passport未为supertest代理设置cookie,node.js,express,testing,cookies,supertest,Node.js,Express,Testing,Cookies,Supertest,我正在尝试使用supertest和mocha对我的Express服务器进行一些集成测试。用户通过Passport LocalStrategy进行身份验证,我正在使用cookie会话设置会话cookie。在浏览器和邮递员中都可以正常工作。但是,我无法使它与supertest结合使用:Express response在注册/登录路由上不包含cookie,因此我无法发出任何经过身份验证的请求 在Express服务器上,cors中间件已经就位,cookie是sameSite和httpOnly。你知道哪里
在Express服务器上,
cors
中间件已经就位,cookie是sameSite
和httpOnly
。你知道哪里不对吗 我遇到了一个非常类似的问题。经过一些尝试和错误,我发现“安全”cookie标志是问题所在。
我对“快速会话”使用了以下配置
const session = require('express-session');
app.use(session({
secret: envVars.SESSION_SECRET,
name: 'app-name',
resave: false,
saveUninitialized: false,
cookie: {
path: '/',
secure : true,
maxAge : null,
sameSite: 'none'
}
}));
从Cookie中删除安全标志修复了该问题
const session = require('express-session');
app.use(session({
secret: envVars.SESSION_SECRET,
name: 'app-name',
resave: false,
saveUninitialized: false,
cookie: {
path: '/',
// secure : true,
maxAge : null,
sameSite: 'none'
}
}));
我遇到了一个非常类似的问题。经过一些尝试和错误,我发现“安全”cookie标志是问题所在。 我对“快速会话”使用了以下配置
const session = require('express-session');
app.use(session({
secret: envVars.SESSION_SECRET,
name: 'app-name',
resave: false,
saveUninitialized: false,
cookie: {
path: '/',
secure : true,
maxAge : null,
sameSite: 'none'
}
}));
从Cookie中删除安全标志修复了该问题
const session = require('express-session');
app.use(session({
secret: envVars.SESSION_SECRET,
name: 'app-name',
resave: false,
saveUninitialized: false,
cookie: {
path: '/',
// secure : true,
maxAge : null,
sameSite: 'none'
}
}));