当前位置: 首页 > 知识库问答 >
问题:

谷歌OAuth访问令牌在MVC应用中过期?

吉鸿宝
2023-03-14

我使用Google Oauth2编写了一个MVC应用程序,如下所示:https://developers.Google.com/api-client-library/dotnet/guide/aaa_oauth#web_applications

我有访问令牌过期的问题。当访问令牌过期时,我在调用Google API时会出现异常:“访问令牌已经过期,但我们不能刷新它”

初始身份验证是两个迭代机制:

https://accounts.google.com/o/oauth2/auth?access_type=offline&response_type=code&client_id=MYCLIENTID&redirect_uri=http:%2F%2Flocalhost%2FHomepage%2FAuthCallback%2FIndexAsync&scope=https:%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar https:%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly&state=http:%2F%2Flocalhost%2FHomepage%2F95419199

注意access_type=offline是存在的。所以我也应该得到刷新令牌(不会发生)。

第二次迭代--AuthorizeAsync返回带有填充凭据和空重定向的结果:

问题1-RefreshToken现在应该为null吗?

问题2-如果访问令牌在那一刻到期(为了测试,我只设置ExpiresInSeconds=0),我调用RefreshTokenAsync方法,但它总是返回false!为什么?我在这里漏掉了什么?

当RefreshTokenAsync返回false时,正确的处理方法是什么?当前RedirectResult(result.redirecturi)命令将失败,因为result.redirecturi为空。

共有1个答案

丁均
2023-03-14

哦,我终于明白了:)对于那些感兴趣的人来说-刷新令牌只发出一次,当你得到同意屏幕时,你必须单击是。

因此,为了获得刷新令牌,请转到您的帐户设置帐户权限:https://security.google.com/settings/security/permissions

并撤销对您在Google Developers控制台中配置的项目的访问权限:https://console.Developers.Google.com/project

现在,在某个地方记录result.credential.token.refreshToken值,它是一个加密的字符串。

为了简单起见,我将我的appsetting放在Web.config中。

现在,我只需将该值赋给result.credential.token.refreshToken=refreshToken;

 类似资料:
  • 我正在使用Twitter的REST API授权一个应用程序。我刚刚用 https://api.twitter.com/oauth/authorize 并从重定向uri获取了oauth_验证程序。 然后我就用了 https://api.twitter.com/oauth/access_token 获取访问令牌。 问题是,我从这个方法得到的响应格式是。就像 oauth_token=7838976568

  • 当我从Google API获得一个< code>access_token时,它带有一个< code>expires_in值。根据文档,该值表示“访问令牌的剩余寿命”。 这个值的单位是多少?

  • 我有一个基于web的应用程序,使用谷歌OAuth2.0作为登录框架。它以前一直工作得很好,直到昨天。访问令牌过期后,applcation无法获取刷新令牌。除此之外,“请求许可”页面已经改为“有离线访问”,而不是“知道你在谷歌上是谁”和“查看你的电子邮件”。 我试图寻找类似的问题,但我找不到一个。这是从昨天开始发生的。在此之前,我从来没有对代码做过任何改变。

  • 调用execute方法时,它会引发以下异常: 谁能指出我哪里做错了?我能够从谷歌oAuth UI获得访问令牌。

  • (联系人和日历有不同的代币) 同步脚本: $AccesStoken是一个序列化字符串,如下所示: 我做错了什么? 有趣的是,对于联系人来说,同步一直都很好(访问令牌的属性与日历同步中的属性相同)

  • 本文向大家介绍oauth 刷新访问令牌,包括了oauth 刷新访问令牌的使用技巧和注意事项,需要的朋友参考一下 示例 资源