访问和刷新令牌

Posted

技术标签:

【中文标题】访问和刷新令牌【英文标题】:Access and Refresh Tokens 【发布时间】:2018-08-01 16:04:41 【问题描述】:

我正在使用 caspio rest api 在移动应用程序中对我的用户进行身份验证。身份验证后,我获得了一个访问令牌,我在 AJAX 调用中的参数“授权”下包含了该令牌:Bearer [访问令牌]。

我知道我可以使用提供给我的刷新令牌来更新令牌,我可以在其中使用 POST 调用。

我的问题是:在使用 POST 调用获取新令牌之前,我必须存储访问令牌吗?

此外,Caspio 网站建议 POST 调用采用这种格式:

Method: POST
URL:    Token Endpoint
Body:   grant_type=refresh_token&refresh_token= [token value]
Header parameters:
Authorization: Basic [string "Client_ID:Client_Secret" encoded in Base64]
Content-Type: application/x-www-form-urlencoded

我还应该在参数中包含客户端 ID 和客户端密码吗?使用 Firefox 的 REST 客户端时,我收到错误请求 (400) 错误。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

我以前从未使用过 caspio rest api。答案基于我的 OAuth 经验。

我的问题是:在使用 POST 调用获取新令牌之前,我必须存储访问令牌吗?

是的! OAuth 2.0 首次使用访问令牌切换刷新令牌。

我还应该在参数中包含客户端 ID 和客户端密码吗?使用 Firefox 的 REST 客户端时,我收到错误请求 (400) 错误。

根据api document。您应该在请求中包含客户端 ID 和客户端密码,就像大多数 OAuth 2.0 一样。

错误请求 (400) 错误您可能会看到 rfc6749 以查找更多信息。

【讨论】:

感谢您的帮助!如果您不介意我问我如何存储访问令牌?我可以简单地创建一个变量 access_token = [access token] 然后将其包含在我的 post call 中吗? 我认为你没有创建一个新变量,只是将你得到的 access_token 放在参数 refresh_token 中。 他们的网站建议将刷新令牌值放在刷新令牌参数中。 如果那样,我帮不了你。 :(根据我的经验,大多数刷新令牌总是在第一次请求时将访问令牌放入 refresh_token 参数中(您之前没有刷新令牌)。在您获得刷新令牌之前,您必须将刷新令牌放入 refresh_token 参数以更新令牌. 别担心!我真的很感激帮助! :)

以上是关于访问和刷新令牌的主要内容,如果未能解决你的问题,请参考以下文章

使用访问令牌和刷新令牌来刷新它们

jwt 访问令牌和刷新令牌流

如何在资源请求上重新生成刷新令牌和访问令牌?

关于google API中访问令牌和刷新令牌的问题

Google OAuth - 访问令牌和刷新令牌之间的区别 [重复]

刷新刷新令牌