【问题标题】:Persistent user sessions in node.js using Google Authenticationnode.js 中使用 Google 身份验证的持久用户会话
【发布时间】:2014-11-21 01:02:20
【问题描述】:

我按照教程使用 passport-google-oauth 模块为我的 Web 应用程序包含 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 中。有什么方法可以增加用户注销之前的时间,或者更好的是,在他点击注销按钮之前不要注销他?另外,会话密钥是什么?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    2) 会话密钥是一个随机字符串,用于使用 HMAC 对会话进行哈希处理(更多关于 HMAC 的内容:here),以防止会话被劫持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-16
      • 2014-10-03
      • 1970-01-01
      • 2019-06-25
      • 2017-03-11
      • 1970-01-01
      • 2014-06-16
      • 2020-10-06
      相关资源
      最近更新 更多