我正在以无 cookie 的方式管理我的项目(expressjs)中的会话,保留所有会话数据服务器端并在客户端使用令牌(先前由服务器生成)来验证每个请求的会话。
用户登录时将创建一个新令牌并隐藏在页面中的某个位置,然后,在每次请求时,此令牌将被写入请求标头并经过验证的服务器端。此时服务器将在会话存储中搜索令牌,比如说redis,如果找到令牌,则获取会话数据,否则以会话过期的消息响应。
我正在考虑一些事情:
- Redis 密钥是在用户登录时创建的,具有确定的到期时间。
- 每次在 redis 中找到会话数据时,我都必须“触摸”密钥,以便推迟到期时间。
- 令牌将与客户端的 IP 地址一起验证,因此不能被其他人使用。
我的问题是这是否可以被认为是一种安全的工作方式,以及我在这里是否缺少任何东西。谢谢