OAuth2 中的访问令牌?
Access Tokens in OAuth2?
这个问题可能基于一些假设或误解,但在大多数 OAuth 版本 1 服务器中,用户可以生成访问令牌和访问令牌机密以及访问级别设置。
在 OAuth2 中,这已被刷新令牌取代,这个概念扰乱了我与另一个服务提供商的集成。
基本上,我们想要做的是拥有这个永久访问令牌,这样用户就不必登录两次(第二次允许访问)。
拥有永久访问令牌与 OAuth 2.0 中访问令牌的用途相冲突,尽管您可能会发现某些 providers/implementations 允许这样做。
您应该做的是在旧访问令牌过期时使用刷新令牌获取新访问令牌。这并不意味着用户必须重新登录。 refresh token之所以存在,正是为了防止后者。
您可以拥有永久刷新令牌。
在 oAuth2 中,访问令牌被设计为寿命较短,而刷新一个则具有更长的寿命。在所有情况下,用户都必须在授权代码阶段登录才能授予访问权限。
见http://www.bubblecode.net/en/2013/03/10/understanding-oauth2/
OAuth2流程如下:
当用户登录应用程序时,他们将收到一个访问令牌和一个将存储在客户端的刷新令牌。在服务器端,刷新令牌必须存储在数据库中,并且有效期很长(例如:1 个月)。用户可以使用用户在第一次令牌请求中收到的刷新令牌 (grant_type=refresh_token) 获取新的访问令牌(当它过期时,例如每 30 分钟一次)。
当访问令牌过期时,客户端必须发送刷新令牌。
例如:
refresh_token=74dc51c2d6f841a4aaef6ef6d4075c0d&grant_type=refresh_token&client_id=webApp
如果此刷新令牌存在于数据库中,服务器将return给客户端一个新的访问令牌,而不需要用户username/password。
这个问题可能基于一些假设或误解,但在大多数 OAuth 版本 1 服务器中,用户可以生成访问令牌和访问令牌机密以及访问级别设置。
在 OAuth2 中,这已被刷新令牌取代,这个概念扰乱了我与另一个服务提供商的集成。
基本上,我们想要做的是拥有这个永久访问令牌,这样用户就不必登录两次(第二次允许访问)。
拥有永久访问令牌与 OAuth 2.0 中访问令牌的用途相冲突,尽管您可能会发现某些 providers/implementations 允许这样做。
您应该做的是在旧访问令牌过期时使用刷新令牌获取新访问令牌。这并不意味着用户必须重新登录。 refresh token之所以存在,正是为了防止后者。
您可以拥有永久刷新令牌。
在 oAuth2 中,访问令牌被设计为寿命较短,而刷新一个则具有更长的寿命。在所有情况下,用户都必须在授权代码阶段登录才能授予访问权限。
见http://www.bubblecode.net/en/2013/03/10/understanding-oauth2/
OAuth2流程如下:
当用户登录应用程序时,他们将收到一个访问令牌和一个将存储在客户端的刷新令牌。在服务器端,刷新令牌必须存储在数据库中,并且有效期很长(例如:1 个月)。用户可以使用用户在第一次令牌请求中收到的刷新令牌 (grant_type=refresh_token) 获取新的访问令牌(当它过期时,例如每 30 分钟一次)。
当访问令牌过期时,客户端必须发送刷新令牌。
例如:
refresh_token=74dc51c2d6f841a4aaef6ef6d4075c0d&grant_type=refresh_token&client_id=webApp
如果此刷新令牌存在于数据库中,服务器将return给客户端一个新的访问令牌,而不需要用户username/password。