在OAuth2中访问令牌?

时间:2015-09-23 12:31:24

标签: oauth-2.0

此问题可能基于某些假设或误解,但在大多数OAuth版本1服务器中,用户可以生成访问令牌和访问令牌密钥以及访问级别设置。

在OAuth2中,它已被替换为刷新令牌,而这个概念会混淆我与其他服务提供商的集成。

基本上,我们想要做的是拥有这个永久访问令牌,因此用户不必登录两次(第二次允许访问)。

3 个答案:

答案 0 :(得分:1)

永久访问令牌与OAuth 2.0中访问令牌的目的相冲突,尽管您可能会找到一些允许这样做的提供者/实现。

您应该做的是使用刷新令牌在旧的访问令牌到期时获取新的访问令牌。这并不意味着用户必须再次登录。刷新令牌存在的原因正是为了防止后者。

答案 1 :(得分:1)

您可以拥有永久刷新令牌。

在oAuth2中,访问令牌设计为短暂的,并刷新一个以获得更长的使用寿命。在所有情况下,用户必须登录才能在授权代码阶段授予访问权限。

请参阅http://www.bubblecode.net/en/2013/03/10/understanding-oauth2/

答案 2 :(得分:1)

OAuth2流程如下:

当用户登录应用程序时,他们将收到一个访问令牌和一个将存储在客户端的刷新令牌。在服务器端,刷新令牌必须存储在DB中,并且将有很长的到期时间(例如:1个月)。用户可以使用刷新令牌(grant_type = refresh_token)获取新的访问令牌(当它过期时,例如每30分钟),用户在第一次令牌请求中收到该令牌。

当访问令牌过期时,客户端必须发送刷新令牌。

例如:

refresh_token=74dc51c2d6f841a4aaef6ef6d4075c0d&grant_type=refresh_token&client_id=webApp

如果此刷新令牌存在于DB中,则服务器将向客户端返回新的访问令牌,而无需用户的用户名/密码。