【发布时间】:2017-09-06 12:36:06
【问题描述】:
情景
我最近构建了一个 API,并使用 OAuth Bearer Access Tokens 保护了它的资源。
我使用了Client_Credentials Flow,因为它将被客户端而不是用户访问。
事情是这样的,当客户成功提供 client_id 和 client_secret 时,他们会收到如下响应:-
{
"access_token": "<Access Token>",
"token_type": "bearer",
"expires_in": 1199,
"refresh_token": "<Refresh Token>"
}
刷新令牌。
对刷新令牌了解不多,我立即假设客户端能够向 OAuth 服务器提供 refresh_token 以检索新的 Access_Token。
这“有点”正确。
为了使用refresh_token,客户端仍然需要传递client_id 和client_secret 以及refresh_token 以获得新的访问令牌。
grant_type 也需要改为refresh_token。
使用此流程的 refresh_token 有什么好处?如果我每次都需要传递 client_id 和 client_secret,你肯定会完全避免使用刷新令牌吗?
【问题讨论】:
-
这个问题与 C#/ASP.Net 无关,它适用于任何构建 OAuth2 API 的人。我对其进行了编辑以使其更广泛地适用。 (好问题!)