在 Nodejs 中,在代理服务器后面具有安全 cookie 和 HTTPOnly。HttpOnly 标志和带有 Secure 标志的 Cookie 如何将其标头发送到代理服务器?
我一直在阅读并假设我需要在代理服务器上启用 X-Forward-Proto?
process.env.NODE_ENV = 'production';
if (app.get('env') === 'production') {
app.set('trust proxy', 1) // trust first proxy
}
app.use(session({
store: new RedisStore({host: '127.0.0.1', port: 6379, client: client, ttl: 3600}),
key: 'sid',
secret: 'abcde',
resave: false,
saveUninitialized: false,
// proxy: true,
cookie: {
secure: true,
httpOnly: true,
maxAge: 3600000
}
}));
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题并在本教程的帮助下解决了它。
您还需要在会话配置中设置该proxy选项。true我建议使用环境变量表达式来执行此操作process.env.NODE_ENV === "production"。
app.use(session({
store: new RedisStore({host: '127.0.0.1', port: 6379, client: client, ttl: 3600}),
key: 'sid',
secret: 'abcde',
resave: false,
saveUninitialized: false,
proxy: process.env.NODE_ENV === "production",
cookie: {
secure: process.env.NODE_ENV === "production",
httpOnly: true,
maxAge: 3600000
}
}));
Run Code Online (Sandbox Code Playgroud)
来自快速会话文档:
代理人
设置安全 cookie 时信任反向代理(通过“X-Forwarded-Proto”标头)。
默认值未定义。
true 将使用“X-Forwarded-Proto”标头。
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |