我什么时候应该销毁令牌

时间:2019-08-31 08:03:42

标签: javascript express jwt token

我对令牌有很多疑问

  1. 我应该在用户登录并注册或(仅登录)时创建令牌吗?
  2. 我应该将令牌保存在本地存储中吗?
  3. 每个用户提出请求后,我都应该发送令牌吗?
  4. 我应该仅在注销后销毁令牌吗?
  5. 用户注册后,他/她将在这里拥有令牌,我应该将令牌保存在本地存储中,并且在他/她登录后,我应该替换令牌,因为他/她将拥有一个新令牌。
    我应该销毁令牌并制作一个新令牌并在本地存储中替换它吗?
  6. 最后一个问题,用户注册后如何使用令牌让用户立即登录?

对不起,你们很累,但是当我尝试制作身份验证内容时,这些问题浮现在脑海中

2 个答案:

答案 0 :(得分:1)

1-仅登录

2-否“如果将其存储在localStorage中,则页面中的任何脚本都可以访问它(听起来很糟糕,因为XSS攻击可以使外部攻击者访问令牌)。”相反,您可以将其保存在HttpOnly Cookie中

3-是的,您还必须进行验证

4-这取决于您是否需要将其保存以用于历史记录和修订版用户事务,因此请保存它,如果不需要,请删除它

5-如果用户拥有有效的令牌,则必须将用户重定向到您的应用程序,这样,如果他具有有效的令牌,他将无法打开登录页面,要再次登录,他必须注销,如果他具有登录名,该怎么办?再次登录,我应该删除旧令牌吗?不要,因为他可能是从其他设备打开了您的应用

6-将令牌返回前端,然后保存该令牌,然后将用户重定向到应用页面而不是登录名。

关于主要问题标题,何时删除令牌?

1-登出

2-您可以进行日常检查(工作或从代码中进行检查)以找到过期的令牌并将其删除。

3-在任何Web服务中收到过期的令牌后,将其删除并将用户重定向到登录页面

答案 1 :(得分:1)

重要的主题,建议您花一些时间来阅读,但是对于初学者来说,这里有一些快速的答案:

  1. 主要是登录,您也可以通过某种方式设置注册确认链接,但这取决于工作流程,足以使用户在注册后登录。
  2. 不,不安全,应该只在内存中。 (例如在商店中)
  3. 是的,您可以在每个呼叫的标题中设置身份验证令牌。
  4. 注销,也要根据您所需的安全级别,为安全起见,可以在其上设置一些到期日期。