【发布时间】:2017-06-23 00:48:44
【问题描述】:
通过从用户获取授权然后创建访问令牌完成 OAuth 流程后,如何在不再次请求用户授权的情况下获取另一个令牌?我认为 Smartsheet 上的用户帐户会记住他们信任该应用程序,但事实似乎并非如此。我是 OAuth 的新手,所以如果我遗漏了一些明显的东西,我很抱歉。
谢谢!
【问题讨论】:
通过从用户获取授权然后创建访问令牌完成 OAuth 流程后,如何在不再次请求用户授权的情况下获取另一个令牌?我认为 Smartsheet 上的用户帐户会记住他们信任该应用程序,但事实似乎并非如此。我是 OAuth 的新手,所以如果我遗漏了一些明显的东西,我很抱歉。
谢谢!
【问题讨论】:
通过 OAuth 流程检索的访问令牌仅在特定时间段内有效 - 您(即您的应用程序)可以在令牌过期之前刷新它,以防止最终用户不得不再次提供授权。
当您发出GET Token request 以获取访问令牌时,响应不仅包含令牌本身,还包含指示令牌有效时长的信息(expires_in 属性表示距离令牌的秒数expires) 和 refresh_token 属性值,您需要它来刷新令牌。
为防止用户不得不再次提供授权,只需在其过期前refresh the token,然后在后续 API 请求中使用新的(刷新的)令牌值。请注意,您获得的每个令牌(无论是原始令牌还是刷新令牌)都会在有限的时间内过期,因此需要您刷新令牌才能让您的应用程序保持用户授权。
【讨论】: