1

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 调用来做到这一点?

4

1 回答 1

3

如果您使用的是客户端 Web 应用程序流程(如果您正在使用在浏览器中运行的 JavaScript 编写代码,那么这是合适的),那么就无法取回刷新令牌并定期刷新它以获取访问令牌. 一方面,accounts.google.com 服务器不支持CORS ,因此无法从 JavaScript 发送 HTTP POST 刷新请求。

您可以利用approval_prompt=auto参数行为,这意味着如果用户先前已授权访问相同范围的 OAuth 2 客户端 ID,则无需任何用户干预即可完成请求新访问令牌。因此,您可以无限期地有效地获得新的访问令牌。

我强烈建议让Google APIs JavaScript 客户端库为您处理这个问题。除了文档中的示例之外,您还可以查看这个简单的示例,该示例展示了如何以只需要初始授权的方式处理 OAuth 2 流程。

于 2013-03-19T15:48:50.277 回答