Google Javascript API:访问令牌过期后会发生什么

Google Javascript API: What happen after access token expire?

本文关键字:什么 过期 Javascript API 访问令牌 Google      更新时间:2023-09-26

我有一个客户端web应用程序(没有后端),使用谷歌Javascript API。我有一个关于登录成功后获得的访问令牌的问题。

从回调中,我们可以看到访问令牌被设置为1小时后过期。

expires_in: "3600"

问题是,我如何"获得一个新的令牌"?从文档中,我的印象是,在令牌无效之后,我们必须(我引用)执行一个新的重新授权流,将immediate设置为true,以获得最新的访问令牌。

来源:https://developers.google.com/+/web/api/javascript

然而,当我试图再次调用auth方法时:

gapi.auth.authorize(parameters, callback)

我得到了令牌对象,但是里面没有访问令牌。

{
    client_id: "{my_client_id}.apps.googleusercontent.com"
    cookie_policy: undefined
    expires_at: "1370371466"
    expires_in: "86400"
    g_user_cookie_policy: undefined
    issued_at: "1370285066"
    response_type: "token"
    scope: "https://www.googleapis.com/auth/plus.login https://gdata.youtube.com"
}

我错过了什么吗?我们通常如何在一个令牌过期后获得刷新令牌?

在客户端,访问令牌是临时的。默认情况下,这是对用户资源的在线访问。为了再次获得访问令牌,您需要再次重定向用户以获得权限。

在OAuth协议中,您的应用程序请求访问由作用域标识的资源的授权,并且假设用户经过身份验证并批准,您的应用程序接收短期访问令牌,允许它访问这些资源,并且(可选地或更准确地在服务器端)刷新令牌允许长期访问。

为服务器端应用程序和用户资源的离线访问,你需要有刷新令牌参考:谷歌分析API自动登录

另请参阅:https://developers.google.com/accounts/docs/OAuth2WebServer

https://developers.google.com/accounts/docs/OAuth2UserAgent