繁体   English   中英

我是否应该刷新API上的访问令牌

[英]Should I refresh access token on API

在某些情况下,特定的授权用户会更改其密码或电子邮件。 由于电子邮件或密码是用户身份验证的一部分,因此我认为有必要撤销所有身份验证令牌。

如果用户更改了密码或电子邮件,刷新身份验证令牌的最佳实践是什么?

我不使用OAuth,但在标头中具有通常的Bearer令牌 这个想法是在客户端存储一个额外的刷新令牌 ,每次邮件或密码更改时,我们都会撤消他的访问令牌。 此用户可以使用刷新令牌发出请求以获取新的访问令牌之后

根据您的后端(Ruby on Rails,NodeJS等),将有不同的方法。 这是一篇很棒的博客文章 (警告:该文章中使用了一些丰富多彩的语言),它克服了一些身份验证陷阱,尤其是重置密码。

老实说,您确定需要一个刷新令牌吗?

为什么不简单地使用更新的凭证向当前活动的会话(发出电子邮件/密码更改请求的凭证)发出新的Bearer令牌?

情况1:用户的身份验证会话

用户具有有效的会话,并从这些会话之一更新其密码或电子邮件

  • 使我们不用来更新密码/电子邮件的会话无效
  • 没有理由假设该帐户已被黑客入侵(已经登录,假设您还在合理的时间范围内使身份验证令牌过期)
  • 使用更新的凭证(密码/电子邮件)发行新的Bearer令牌
  • 最佳做法:向帐户发送一封电子邮件,确认密码更改

情况2:忘记密码

用户已注销并要求更改密码(不是您特别要求的密码,也是为什么即使使用特殊会话也不需要刷新令牌的原因):

  • 发送重置链接
  • 用户单击该链接,这将创建一个特殊的会话,他们可以在该会话中登录并可以更新其密码
  • 用户更新其密码,使所有其他会话(如果有的话)失效,并基于更新的凭证向当前会话发出新的有效身份验证令牌
  • 最佳做法:强迫他们在执行任何其他操作之前更新密码

希望这能回答您的问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM