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调用?
答案 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流程。