【发布时间】:2017-06-24 02:27:00
【问题描述】:
我已将 ADFS3 OAuth2 配置为返回刷新令牌:
PS> Set-AdfsRelyingPartyTrust -TargetName "RPT Name" -IssueOAuthRefreshTokensTo AllDevices
PS> Set-AdfsRelyingPartyTrust -TargetName "RPT Name" -TokenLifetime 10
PS> Set-AdfsProperties -SSOLifetime 480
这里访问令牌持续 10 分钟,刷新令牌持续 480 分钟。
然后我通过 GET 生成访问令牌:
https://myadfsdomain/adfs/oauth/authorize
?response_type=code
&client_id=MYCLIENTID
&redirect_uri=https://myserver/callback
&resource=MYRelyingPartyId
并发布responseCode 例如:
$http({method: "post",
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
url: "https://myadfsdomain/adfs/oauth2/token",
data: "client_id=MYCLIENTID&code=" + responseCode + "&redirect_uri=https://myserver/callback&grant_type=authorization_code" })
响应包含访问令牌、类型、过期时间和刷新令牌:
{"access_token":"blah...",
"token_type":"bearer",
"expires_in":600,
"refresh_token":"blahblah..."}
太好了。访问令牌现在无论配置多久都有效(此处为 10 分钟)
问题是,一旦该时间到期,我们如何使用refresh_token 来获取另一个访问令牌?即:
- 网址是什么?
- 我们发帖吗?
- 我们使用什么参数名称来发布
refresh_token?
【问题讨论】:
标签: oauth oauth-2.0 adfs adfs3.0