使用Google身份验证在node.js中持久保存用户会话

时间:2014-09-26 05:07:16

标签: node.js session express google-oauth passport.js

我按照教程使用passport-google-oauth模块为我的网络应用程序添加了Google身份验证。 server.js文件包含以下代码行:

app.use(express.session({ secret: 'victoriassecret' })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions

此外,我发现应用程序会在一段时间后自动将用户注销。 Passport配置在server.js中导入的单独文件中。有没有什么方法可以在用户退出之前增加时间,甚至更好,在他点击退出按钮之前不记录他?此外,会议秘密是什么?

1 个答案:

答案 0 :(得分:1)

1)您可以使用cookie参数的maxAge选项定义会话cookie的最长生命周期(同时也是用户自动注销之前的时间),如下所示:

app.use(expressSession({ cookie: {maxAge: 10000} , secret: 'victoriassecret'}));   

根据此maxAge值(10000),cookie的最长生命周期为10.000毫秒(10秒)。 (显然你需要比这更大的价值)

因此,您可以增加maxAge值以满足您的需求,并确保用户在他决定之前不会退出,按下Logout按钮。

2)会话密钥是一个随机字符串,用于散列与HMAC的会话(更多关于HMAC:here),以保护会话不被劫持。

相关问题