node.js - 在 Express 中保持可靠的 session

标签 node.js session express

我正在使用 Nodejs 和 Express 创建一个 Web 应用程序。但我发现维持 session 有些困难。我可以使用 req.session.userid = userid ,但它不太可靠。如果服务器宕机一段时间并且必须重新启动, session 就会丢失。有没有什么方法可以更有效地存储 session ?

最佳答案

您可以使用如上所述的数据库,也可以使用内存存储,例如 redis。 Redis 是处理用户 session 时的首选方式,因为它比从磁盘读取速度更快。

此外,您可能想要研究 Json Web token ,这样您就不必存储 session ,而只需在数据库(或 redis)中保留对用户 token 的引用。这将使您可以轻松地在移动设备上进行身份验证。如果您将 token 存储在用户本地存储(而不是 cookie)上,它还可以帮助防止 csrf 攻击

您可以在这里阅读有关它们的信息:https://scotch.io/tutorials/the-ins-and-outs-of-token-based-authentication , https://scotch.io/tutorials/the-anatomy-of-a-json-web-token , https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens

关于node.js - 在 Express 中保持可靠的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34237741/

相关文章:

可以解析电子表格的javascript库?

javascript - RethinkDB:​​判断结果集中是否有下一个文档

javascript - 将 JSON 数据从 AngularJS 客户端发送到 Express 服务器

node.js - 如何暂时在不同的端口运行 Node 应用程序?

node.js - passport.js ,在弹出窗口中验证后,关闭它并重定向父窗口

node.js - 建立连接之前使用后备传输进行 Socket.IO 身份验证

asp.net - 退出后返回箭头

php - 将 PHP 重定向到登录页面,而不是强制登录

node.js - 不同客户端 Nodejs 的 session id 相同

node.js - NodeJS module.exports 没有按预期工作