【问题标题】:How to refresh a client-side Google api access token?如何刷新客户端 Google api 访问令牌?
【发布时间】:2014-07-18 00:25:02
【问题描述】:

我正在使用此处描述的client-side 流程: Client-side (JavaScript) applications.

一切顺利,直到 access_token 过期。然后我得到 401/403 响应。我需要做什么?我试过gapi.auth.authorize 和gapi.auth.getToken,但似乎没有任何效果。

由于原始 auth.authorize 没有提供(可以理解的)刷新令牌,我不确定还能做什么。

【问题讨论】:

  • 我也有同样的问题。没有办法刷新令牌。这些文档还有其他问题。如果我按照建议包含 nonce 并且返回的参数没有记录(观众重命名为 aud,没有返回用户 ID),我会收到错误。谷歌不够好。

标签: javascript google-drive-api google-plus google-calendar-api google-data-api


【解决方案1】:

来自页面/部分you referenced:

当令牌过期时,应用程序会重复该过程。

因此,您如何处理它取决于您如何实施和使用客户端流程。一般来说,您应该只需要按照https://developers.google.com/accounts/docs/OAuth2UserAgent?hl=ja#formingtheurl 中的说明重定向用户,但这取决于您让他们如何进行初始身份验证。

【讨论】:

  • 我在该页面的任何地方都看不到该评论。这似乎有点坏了。
  • 评论在原始海报引用的页面上,直接在概述用户流程的图表上方。我已经更新了答案以通过提供指向所引用页面/部分的链接来澄清。
  • 至于它被“破坏” - 不是真的。假设用户尚未注销或撤回其同意,则该流程的“登录和同意”部分对用户是透明的。
【解决方案2】:

简短的回答是:您不会在 JavaScript 中刷新令牌客户端,客户端库会这样做。更长的版本更复杂,但简而言之,不要在客户端应用程序上存储刷新令牌。

要了解有关使用 Javascript 客户端库的更多信息,请从此处开始:

https://developers.google.com/+/quickstart/javascript

【讨论】:

  • @MKSafi - 与我离线跟进您将如何更改客户端,很高兴听到您想如何使用它。我最好的联系电子邮件在我的个人资料中。
猜你喜欢
  • 1970-01-01
  • 2012-03-03
  • 2012-06-25
  • 2014-02-10
  • 2016-03-22
  • 2013-02-03
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多