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

刷新令牌过期时间Google日历

冉丰茂
2023-03-14

任何人都可以告诉我通过 OAuth2 生成刷新令牌的到期时间。实际上,它通常返回 2 个参数访问令牌和刷新令牌。我们使用刷新令牌,以便在访问令牌过期时生成新的访问 toke。但是谷歌日历版本3,我正在使用刷新令牌来调用日历API。但是在这里我遇到了令牌过期的问题。所以任何人都可以建议我当令牌过期时我该怎么办。据我说,刷新令牌没有过期时间。请检查下面的代码以使用刷新令牌创建日历服务:-

 private CalendarService CreateService(string token)
{        
    KeyValuePair<string, string> credentials = Common.Get3LOCredentials();
    var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description);
    provider.ClientIdentifier = credentials.Key;
    provider.ClientSecret = credentials.Value;
    var auth = new Google.Apis.Authentication.OAuth2.OAuth2Authenticator<NativeApplicationClient>(provider, (p) => GetAuthorization(provider, token));
    CalendarService service = new CalendarService(new BaseClientService.Initializer()
    {
        Authenticator = auth,
        ApiKey = ConfigurationManager.AppSettings["APIkey"].ToString(),
        GZipEnabled = false
    });       
    return service;
}

private static IAuthorizationState GetAuthorization(NativeApplicationClient arg, String Refreshtoken)
{
    IAuthorizationState state = new AuthorizationState(new[] { CalendarService.Scopes.Calendar.GetStringValue() });
    state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
    state.RefreshToken = Refreshtoken;        
    return state;
}

共有1个答案

夏祯
2023-03-14

刷新令牌不会过期,但可以撤销。您(令牌处理者)可以通过编程方式自行撤销令牌,或者终端用户可以在其帐户设置中撤销令牌。确保您正确使用刷新令牌来获取新的访问令牌,并且没有尝试使用已过期的访问令牌。

你能编辑你的问题来显示你得到的确切错误吗?

 类似资料:
  • google oauth2刷新令牌何时过期? 我所说的过期是指过期是因为经过了某个时间跨度(不是因为用户已撤销访问权限或用户已请求新的刷新令牌) 我做了一些研究,没有一个引用官方的谷歌文档(我也找不到一个有效的谷歌文档) 其他一些问题表示,由于时间,它从未过期: 谷歌刷新令牌过期了吗? https://community.fitbit.com/t5/web-api-development/inva

  • 我已经阅读了跑道文档。我特别考虑了以下关于使用的声明: 此请求返回与上述相同的数据,您可以继续反复执行此操作,以保持应用程序的身份验证,而无需要求用户重新身份验证。 这是否意味着将无限期有效或过期: < li >签发后X天;或者 < li >最后一次使用它获取新的< code>access_token后的X天 编辑:请参阅此跑道线程,该线程提出相同的问题,但似乎没有给出任何关于Oauth2.0协议

  • 我正在构建一个服务器端应用程序,定期从用户的谷歌设备访问信息,并在满足某些标准时通知他们。 我有几个测试用户注册了,他们已经通过谷歌oauth2登录。应用程序已经收到了他们的auth代码,请求离线访问,并将他们的刷新令牌存储在一个单独的DB位置。然后,应用程序使用刷新令牌定期轮询他们的智能设备,以根据需要获得访问权限。 我的问题是测试用户的刷新令牌在使用几天后就过期了。我找不到谷歌关于刷新令牌寿命

  • 我的网站上有一个php应用程序,允许我的用户使用我的谷歌日历计划/重新安排日历事件,所以我不需要用户通过谷歌认证自己。我已经完成了获取令牌和存储刷新令牌的工作,但现在当我尝试访问日历时,我收到一个错误消息,说我的令牌已过期。输出为 创建客户端时发现访问令牌={“access_token”:“long…token…string”,“token_type”:“Bearer”,“expires_in”:

  • 我在我的应用程序中使用Google API,并且oAuth2刷新令牌在1小时后过期。我正在使用此刷新令牌执行每天运行的任务。我使用OAuth2游乐场创建刷新令牌。有没有办法延长刷新令牌的过期时间?(1个月)

  • 我用ReactJS做单页网页登录。问题是如何以及在哪里保存令牌过期时间。我需要保存在sessionStore中,但当浏览器关闭时,所有的数据都将被删除。本地商店?但数据将永远。或者我可以在localStore中保存并在每个事件中添加函数,该函数检查localStore的过期时间,当事件触发成功时再次更新localStore?但代码看起来很可怕...性能问题呢?这大概可以接受吗?