首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >重新授权应用程序发送gmail

重新授权应用程序发送gmail
EN

Stack Overflow用户
提问于 2021-03-05 17:10:53
回答 2查看 45关注 0票数 0

在什么情况下(除了有人撤销更改gmail密码的权限),用户需要重新授权应用程序访问他们的gmail数据?我的应用程序存储并使用刷新令牌来维护当前的访问令牌,但我的用户偶尔仍会被要求从头开始授权,有时这会失败,只有当他们重置浏览器设置时才能再次生效。

EN

回答 2

Stack Overflow用户

发布于 2021-03-05 17:43:43

导致刷新令牌过期。

  1. 用户吊销访问权限。
  2. 用户更改密码,并且您使用gmail scope
  3. 刷新令牌已有六个月未使用。
  4. 您最多可以为一个用户提供50个未完成的刷新令牌。因此,如果用户请求新的刷新令牌,请确保存储最新的令牌,因为一旦达到51,可用的最旧令牌就会过期。

这应该差不多了,除非你考虑到2015秋季的bug,它导致了一堆刷新令牌由于夏令时而过期。(那是有趣的一天)

票数 1
EN

Stack Overflow用户

发布于 2021-03-13 18:11:27

代码语言:javascript
代码运行次数:0
运行
复制
I'm not storing anything explicitly, it's all being done by Google's Authorization Broker. Here's the code:

UserCredential credential; 
using (FileStream credentialsfile = new FileStream(Application.StartupPath + @"/credentials.json", FileMode.Open, FileAccess.Read))
{
                string credPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/SJGmailAPI.json");
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(credentialsfile).Secrets, Scopes, senderemailaddress, CancellationToken.None, new FileDataStore(credPath, true)).Result;
            }
            bool rc = AuthTest.TestAuthorisation(credential,senderemailaddress,ApplicationName);

So is Google's own code storing the wrong refresh token then?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66489693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档