1. Oauth2s/

从0开始构建一个Oauth2Server服务 21

·48 字·1 分钟· loading
Oauth2 Oauth2 HTTP
demo007x
作者
demo007x

从0开始构建一个Oauth2Server服务 21
#

刷新令牌 Refreshing-access-tokens
#

如何让您的开发人员使用刷新令牌来获取新的访问令牌。如果您的服务随访问令牌一起 发出刷新令牌,则您需要实现此处描述的刷新授权类型。

请求参数
#

访问令牌请求将包含以下参数。

grant_type(必需的)
#

grant_type参数必须设置为“refresh_token”。

refresh_token(必需的)
#

先前颁发给客户端的刷新令牌。

scope(选修的)
#

请求的范围不得包括未在原始访问令牌中发布的其他范围。通常这不会包含在请求中,如果省略,服务应该发出一个与之前发出的范围相同的访问令牌。

客户端身份验证(如果客户端被授予机密则需要)
#

通常,刷新令牌仅用于机密客户端。但是,由于可以在没有客户端密码的情况下使用授权代码流,因此没有密码的客户端也可以使用刷新授权。如果向客户端发出了一个秘密,则客户端必须对该请求进行身份验证。通常,该服务将允许附加请求参数client_idclient_secret,或者接受 HTTP 基本身份验证标头中的客户端 ID 和密码。如果客户端没有密码,则此请求中不会出现客户端身份验证。

验证刷新令牌授予
#

在检查了所有必需的参数并验证了客户端(如果向客户端发出了秘密)之后,授权服务器可以继续验证请求的其他部分。

然后服务器检查刷新令牌是否有效,并且没有过期。如果刷新令牌已颁发给机密客户端,则服务必须确保请求中的刷新令牌已颁发给经过身份验证的客户端。

如果一切正常,该服务可以 生成访问令牌并做出响应。服务器可能会在响应中发出新的刷新令牌,但如果响应不包含新的刷新令牌,则客户端会假定现有的刷新令牌仍然有效。

例子
#

以下是服务将接收的刷新授权示例。

POST /oauth/token HTTP/1.1
Host: authorization-server.com
 
grant_type=refresh_token
&refresh_token=xxxxxxxxxxx
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx

Response
#

对刷新令牌授予的响应与发出访问令牌时的响应相同。您可以选择在响应中发出新的刷新令牌,或者如果您不包含新的刷新令牌,则客户端假定当前的刷新令牌将继续有效。

Related

从0开始构建一个Oauth2Server服务 18
Oauth2 Oauth2 HTTP
AccessToken访问令牌是应用程序用来代表用户发出 API 请求的东西。访问令牌代表特定应用程序访问用户数据的特定部分的授权。
从0开始构建一个Oauth2Server服务 11
Oauth2 Oauth2 HTTP
授权 Authorization授权界面是用户在授予应用程序访问其帐户时看到的屏幕。以下部分介绍了如何构建授权屏幕、界面中包含哪些组
从0开始构建一个Oauth2Server服务 3
Oauth2 Oauth2 HTTP
服务器端应用程序是处理 OAuth 服务器时遇到的最常见的应用程序类型。这些应用程序在 Web 服务器上运行,其中应用程序的源代码不向公众开放,因此它们可以维护其客户端机密的机密性。