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

时间:2013-06-03 19:07:27

标签: javascript google-api access-token google-authentication

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

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

expires_in: "3600"

问题是,如何“获取新令牌”? 从文档中,我的印象是在令牌无效后,我们必须(并且我引用)执行新的重新授权流程,立即设置为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"
}

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

1 个答案:

答案 0 :(得分:0)

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

在OAuth协议中,您的应用请求授权以访问由范围标识的资源,并假设用户经过身份验证和批准,您的应用会收到短暂的访问令牌,以便访问这些资源,以及(可选地或更准确地说,在服务器端)刷新令牌以允许长期访问。

对于服务器端应用程序和用户资源的离线访问,您需要具有刷新令牌请参阅:Google Analytics API Automated Login

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

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