刚刚访问了链接"http://www.cloudidentity.com/blog/2015/03/20/azure-ad-token-lifetime/“以供参考,发现从微软OAuth2.0收到的refresh_token只工作90天的,彻底使用之后,我们需要让用户再次认证微软的应用程序
如果offline_access只能在接下来的90天内工作,我们应该如何开发带有refresh_token范围的微软应用程序呢?
用户可能不会再次访问job应用程序,他可能需要微软的应用程序在后台完成它的工作,并达到目的.
我们是否应该通过某种方法(电子邮件、短信、ivr电话)通知用户重新认证微软的应用程序?这对开发人员来说很乏味,对用户来说也很不舒服.
是否有任何压倒一切的机制来解决这一困境?请分享任何想法或解决办法,让我的灵魂安息.
发布于 2016-03-03 06:02:06
目前还没有在Mobile中检索刷新令牌的机制。这是即将为启用的功能,但到目前为止,它还不能通过基本的LoginAsync(“aad”)流获得。本文将讨论如何在本地移动应用程序中最好地处理AAD访问令牌,并将提供帮助。
如果您需要更好的刷新支持,如果您使用的是.NET后端,那么当然可以使用阿达尔。它对LoginAsync有一个重载,它还接受访问令牌(作为JSON对象的一部分,在键“access_token”下)。这允许客户端处理刷新操作。
发布于 2016-03-03 08:46:06
我们可以在Azure中OAuth 2.0的最佳实践上找到报价
刷新令牌没有指定的生存期。通常,刷新令牌的寿命相对较长。但是,在某些情况下,刷新令牌过期、被撤销或缺乏足够的特权来执行所需的操作。客户端应用程序需要正确地期待和处理令牌颁发端点返回的错误。当收到带有刷新令牌错误的响应时,放弃当前刷新令牌并请求新的授权代码或访问令牌。特别是,在授权代码授予流中使用刷新令牌时,如果收到带有interaction_required或invalid_grant错误代码的响应,则放弃刷新令牌并请求新的授权代码。
这意味着,当refresh_token过期时,如果您使用此令牌申请新的access_token,您将得到一个错误。
因此,您可以在代码脚本中编写错误处理程序,当在授权代码授权流中使用刷新令牌时,如果收到带有interaction_required或invalid_grant错误代码的响应,则需要丢弃刷新令牌并请求新的授权代码。
https://stackoverflow.com/questions/35747030
复制相似问题