在浏览器的Cookie中保存登录状态

时间:2019-07-14 22:03:32

标签: node.js cookies

我尝试使用NodeJS做一个简单的身份验证系统。

我想在浏览器的cookie中保存登录状态(是否记录)。

任何人都可以阅读cookie,然后将相同的cookie添加到他的浏览器并假装他已登录吗?

这是保存登录状态的好方法吗?

1 个答案:

答案 0 :(得分:0)

查看节点/ npm模块client-sessions(来自Mozilla团队)。它使您可以创建加密的cookie,并将其安全地存储在客户端上,因此您不必担心篡改。

这确实有一些缺点:

  1. 您的大小受到浏览器存储在Cookie中的大小的限制,通常4K是一个安全数字,因此,如果您需要一个更大的会话,则需要一些后端存储/缓存来保存它并仅使用一个密钥在Cookie中。
  2. 一旦Cookie在客户端上具有给定的到期时间,您就无法使其失效。您始终可以使用其他检查,并将过期时间重置为now / 0 / etc,但是您必须使用一些后端存储/缓存来处理它。

我发现,用于身份验证的cookie与您用于用户数据库和/或缓存(例如,可能是redis)的任何组合都构成了良好的体系结构。