我有一个使用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"
}
我错过了什么吗?我们通常如何在一个过期后获得刷新的令牌?
答案 0 :(得分:0)
在客户端,访问令牌是临时的。默认情况下,这是对用户资源的在线访问。为了再次访问令牌,您需要再次重定向用户权限。
在OAuth协议中,您的应用请求授权以访问由范围标识的资源,并假设用户经过身份验证和批准,您的应用会收到短暂的访问令牌,以便访问这些资源,以及(可选地或更准确地说,在服务器端)刷新令牌以允许长期访问。
对于服务器端应用程序和用户资源的离线访问,您需要具有刷新令牌请参阅:Google Analytics API Automated Login
另请阅读:https://developers.google.com/accounts/docs/OAuth2WebServer