gpt4 book ai didi

ruby-on-rails - 如何使用我的刷新 token 刷新我的 google_oauth2 访问 token ?

转载 作者:行者123 更新时间:2023-12-04 05:18:21 24 4
gpt4 key购买 nike

我有一个 RoR 应用程序,我在其中使用 omniauth 和 google_oauth2 对 Google 进行身份验证,我请求离线访问。

如何使用刷新 token 请求当前访问 token ?另外,当我的访问 token 不再有效时如何刷新它?我不想在这种情况下有任何用户界面,当然假设授权没有被取消。

最佳答案

我在 google_oauth2 中没有看到任何内容处理获取新的 access_token带有刷新 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_IDCLIENT_SECRET与您用于原始身份验证和 REFRESH_TOKEN 的相同是来自原始身份验证流程的刷新 token 。如果交换成功,您将在响应中收到一个新的访问 token ,如下所示:
{
"access_token":"1/fFBGRNJru1FQd44AzqT3Zg",
"expires_in":3920,
"token_type":"Bearer",
}

您可以按照此过程在需要时获取新的访问 token 。您可以使用 expires_in值来估计您何时需要一个新的,或者在您的 API 请求以 401 HTTP 状态响应时尝试刷新。

关于ruby-on-rails - 如何使用我的刷新 token 刷新我的 google_oauth2 访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12792326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com