我正在使用 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/