ruby-on-rails – 如何使用刷新令牌刷新google_oauth2访问令牌?
发布时间:2020-12-16 20:56:22 所属栏目:百科 来源:网络整理
导读:我有一个RoR应用程序,我使用omniauth和google_oauth2对Google进行身份验证,我要求离线访问. 如何使用刷新令牌请求当前访问令牌?此外,如果访问令牌不再有效,我该如何刷新它?我不希望在这种情况下有任何用户界面,当然假设授权尚未被删除. 解决方法 我在googl
我有一个RoR应用程序,我使用omniauth和google_oauth2对Google进行身份验证,我要求离线访问.
如何使用刷新令牌请求当前访问令牌?此外,如果访问令牌不再有效,我该如何刷新它?我不希望在这种情况下有任何用户界面,当然假设授权尚未被删除. 解决方法
我在google_oauth2中没有看到任何处理带有刷新令牌的新access_token的内容,所以看起来你需要直接进行交换.
Google’s official OAuth 2.0 documentation解释了如何在低级别执行此操作.在服务器端代码中,使用您喜欢的HTTP客户端构建如下所示的请求: POST /o/oauth2/token HTTP/1.1 Host: accounts.google.com Content-Type: application/x-www-form-urlencoded client_id=CLIENT_ID& client_secret=CLIENT_SECRET& refresh_token=REFRESH_TOKEN& grant_type=refresh_token 其中CLIENT_ID和CLIENT_SECRET与原始身份验证使用的相同,REFRESH_TOKEN是原始身份验证流程中的刷新令牌.如果交换成功,您将在响应中收到一个新的访问令牌,如下所示: { "access_token":"1/fFBGRNJru1FQd44AzqT3Zg","expires_in":3920,"token_type":"Bearer",} 您可以按照此过程在需要时随时获取新的访问令牌.您可以使用expires_in值来估计何时需要新值,或者在API请求以401 HTTP状态响应时尝试刷新. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- React Native系列之-React.js介绍
- Cocos2d-x3.5 _ 示例工程分析
- 【每日安全资讯】卡巴斯基发现了一个正被利用的 Flash 0day
- C#获取机器码的方法详解(机器名,CPU编号,硬盘编号,网卡mac等
- QT中使用QXmlStreamReader解析XML文件
- actionscript-3 – 隐藏和显示swf时如何判断ExternalInterf
- ruby – 我可以对传递给方法的块强制执行arity吗?
- ruby-on-rails – bundle更新失败:组织数据太短
- ruby-on-rails – Rails 3 – 未定义的方法`delivery_handl
- Nosql的实际应用场景