Youtube API:有没有办法刷新客户端v3 api中的access_token?

时间:2013-03-14 02:02:11

标签: javascript youtube-api oauth-2.0

https://developers.google.com/youtube/v3/guides/authentication

POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded

client_id=21302922996.apps.googleusercontent.com&
client_secret=XTHhXh1SlUNgvyWGwDk1EjXB&
refresh_token=1/6BMfW9j53gdGImsixUH6kU5RsR4zwI9lUVX-tqf8JXQ&
grant_type=refresh_token

开发人员文档列出了一种刷新后端access_token的方法。有没有办法用前端javascript调用?

1 个答案:

答案 0 :(得分:3)

如果您正在使用c lient-side web applications flow,如果您在浏览器中运行的JavaScript中编写代码是合适的,那么就无法获取刷新令牌并定期刷新它以获得访问令牌。 accounts.google.com服务器不支持CORS,因此无法从您的JavaScript发送HTTP POST刷新请求。

您可以利用的是approval_prompt=auto参数行为,这意味着如果用户之前已授权访问相同作用域的OAuth 2客户端ID,则可以在不使用任何内容的情况下请求新的访问令牌用户干预。因此,您可以无限期地有效地获得新的访问权限。

我强烈建议让Google APIs JavaScript client library为您处理。除了文档中的示例之外,您还可以查看this simple example,其中显示了如何以仅需要初始授权的方式处理OAuth 2流程。