【问题标题】:Single page application- Oauth-2: Do we need the refresh token?单页应用程序 - Oauth-2:我们需要刷新令牌吗?
【发布时间】:2020-01-29 08:57:37
【问题描述】:
**大家好,我正在研究使用单页应用程序的刷新/访问令牌 (oauth-2),就我而言,有一个身份验证服务器和许多资源服务器,但我不明白:
“我们需要使用刷新令牌来获取新的访问令牌吗?为什么?如果是,客户端应该存储刷新令牌还是只存储访问令牌?”
**在我看来:
_如果我们在客户端存储刷新令牌以获取新的访问令牌,为什么我们不使用访问令牌在过期之前获取新的访问令牌。
_如果我们将刷新令牌存储在身份验证服务器中,那么刷新令牌的目的是什么?
请帮帮我!谢谢大家!
【问题讨论】:
标签:
oauth-2.0
single-page-application
【解决方案1】:
一段时间后,我自己找到了答案:))
对于单页应用程序,我们仍然需要在客户端存储访问令牌和刷新令牌。为什么?
因为访问令牌用于与许多资源服务进行交换。而且我们不能100%信任任何资源服务,它们可以属于未来适应我们服务的第三方服务。所以我可以说“访问令牌仍然可以在 3rd 方服务中被盗”。但是请记住访问令牌的生命周期很短(大约 10-30 分钟),我们必须接受这种情况。
但是刷新令牌用于获取新的访问令牌,并且它的生命周期通常很长(1个月,也许事件1年)。如果我们丢失了它,小偷可以用我们的资源为所欲为。因此,刷新令牌只在客户端和认证服务器之间交换。认证服务器永远不会丢失作为刷新令牌的安全数据,并且客户端和认证服务器之间的连接是可以信任的,因为如果我们不能信任认证服务器,我们的所有信息从一开始就已经丢失,我们无法拥有任何信息保存它的方法。