javascript - YouTube API : Is there a way to refresh an access_token in the client side v3 api?

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

最佳答案

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

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

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

关于javascript - YouTube API : Is there a way to refresh an access_token in the client side v3 api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15399883/

相关文章:

javascript - Ember JS组件多个复选框选择数组

javascript - Rails 放大弹出窗口,带有表行独特的编辑按钮

api - 按关键字和类别 ID 搜索 YouTube API

java - 仅 Twitter 应用程序身份验证 - 错误代码 86 “This method requires a GET or HEAD”

c# - 尝试使用 Google API 将授权代码交换为访问代码时出错

javascript - 嵌套异步等待未按预期工作

javascript - 如何将姓名拆分为名字和姓氏并在范围内使用

android - 如何使音频YouTubeAndroidPlayerAPI静音?

java - 如何通过YouTube API获取YouTube视频的标题

oauth-2.0 - 在 OAuth2.0 中没有状态参数的情况下,CSRF 是如何工作的?