如何使用everyauth和nodejs来保存用户标识信息

everyauth.everymodule.findUserById被调用一个id参数,everyauth从req.session中select。 这可以用来加载传递给req.user的用户信息

在本地主机上,当节点app.js服务器重新启动时,会话被清除。

我想要做的是设置一个cookie,其中包含我可以传递给everyauth的用户标识,以便在服务器重新启动时知道id和everymodule.findUserBy标识可以做到这一点。

我正在使用expressjs,发现connect-mongodb和cookie-sessions都不起作用。 那么提出的方法是什么呢?

换句话说,有没有预先填充每个用户信息的方法?

我认为你需要在expressjs之外build立一个永久会话存储。 由于expressjs中的默认会话保留在内存中,所以在重新启动服务器时会丢失它们。 我结束了connect-redisconnect-mongo ,尽pipe我正在为我的数据库使用MongoDb。 我希望会话数据与数据库保持分开。 我不确定是否有必要,但设置起来非常简单。

另外,当我们谈论这个话题的时候,以下是我碰到的其他一些障碍:

  • 确保服务器时间设置正确,否则会话可能会提前失效。
  • 在开发过程中遇到的一件事是因为会话由浏览器提供的用户代理string进行了指纹识别。 我发现我的firefox(FirePHP,一个Firebug扩展)启用了一个插件,在第一个请求之后修改了我的用户代理string。 这导致会话在浏览器closures之前就像他们一样有效。 我花了几天的时间来追踪。

希望这可以帮助。