由于不活动,MSGraph无效的刷新令牌

时间:2016-06-14 07:24:21

标签: refresh token office365 microsoft-graph

我们正在通过MSGraph rest api在我们的应用程序上集成 Office 365 功能,我们目前在刷新令牌的验证方面遇到麻烦,这是来自无效请求的服务器的响应错误代码:

  

“error”:“invalid_grant”,“error_description”:“AADSTS70002:错误   验证凭据。 AADSTS70008:刷新令牌已过期   由于不活跃。令牌被发出   2016-04-27T11:44:49.4826901Z于14.00:00:00无效。

这很烦人,因为我们需要用户再次登录Microsoft服务器来获取他们的凭据。

是否有任何选项可以避免由于不活动而导致刷新令牌失效?或者延长这个到期时间?

2 个答案:

答案 0 :(得分:2)

刷新令牌的生命周期有限。如果在此之前未请求新令牌(和刷新令牌),则它们将过期。一旦发生这种情况,用户必须重新进行身份验证。

如果您需要永久访问该帐户,则需要定期手动刷新令牌。您可能需要查看this article。它涵盖了v2端点如何工作的基础知识(以及各种令牌生存期)。

在我的大多数实现中,我使用队列来处理刷新令牌。我将每个令牌排队,以便在10天时刷新。如果失败,我会重新提交队列。如果在第12天仍然失败,我会通过电子邮件通知用户有问题,他们需要重新进行身份验证。

<强>更新

刷新令牌生命周期最近更改为until-revoked。您可以阅读有关更改here

的信息

答案 1 :(得分:0)

这是一般OAuth(不是AAD特定的):获取访问令牌需要两个步骤。第一步是获取需要用户进行身份验证的身份验证代码。第二步是从授权代码中兑换访问令牌和刷新令牌。第二步纯粹是程序化的,即用户不需要存在。该应用可以继续重复第二步,即从最新刷新令牌中兑换新的访问令牌和新刷新令牌,而用户甚至不知道它。

您的应用应安排频繁刷新&#39;刷新令牌。您可以在应用程序运行时随时执行此操作。

如果用户长时间不使用该应用,例如大约2周(我相信),则刷新令牌自然会过期。如果您想避免这种情况,您必须安排专门的工作来刷新令牌。

兹拉特科

相关问题