我有一个关于如何在访问已受保护的Microsoft Azure Mobile服务时获取然后使用刷新令牌的问题。
我正在构建一个移动应用程序,现在有了这个工作的基础知识。我可以通过azure移动服务提供的azure广告和Windows帐户(稍后会更新)进行身份验证。要做到这一点,我使用移动客户端和移动服务用户。然后我可以在Windows Phone 8和IOS中存储登录票。当我弄清楚android中的钥匙链时会添加android。但我需要弄清楚的是如何获得刷新令牌以及如何处理它。现在我的登录在1小时后过期
答案 0 :(得分:2)
微软补充说,我找到了答案。我找到了 发布非常有帮助:
http://cgillum.tech/2016/03/07/app-service-token-store/
这是帖子的主要内容
刷新代币
使用访问令牌的一个重要细节是,其中大多数将最终到期。某些提供商(如Facebook)可以访问60天后过期的令牌。其他提供商(如Azure AD,Microsoft Account和Google)会发出在1小时后过期的访问令牌。在所有情况下,可以通过强制用户重新进行身份验证来获得一组新的令牌。这对Facebook来说是合理的,因为重新认证只需要每60天发生一次。但是,对于Azure AD,Microsoft帐户和Google,令牌过期时间为1小时,这是不切实际的。
为避免需要重新验证用户以获取新的访问令牌,您可以向应用程序的/.auth/refresh端点发出经过身份验证的GET请求。这是一个内置端点,就像/.auth/me一样。调用时,Easy Auth模块将自动刷新已验证用户的令牌存储中的访问令牌。然后,您的应用代码对令牌的后续请求将获得最新的令牌。为此,令牌存储必须包含提供程序的刷新令牌。如果你不熟悉如何做到这一点,这里有一些提示:
Google:在您的/.auth/login API调用中添加“access_type = offline”查询字符串参数(如果使用Mobile Apps SDK,您可以将其添加到其中一个LogicAsync重载中)。 Microsoft帐户:在Azure管理门户中选择wl.offline_access范围。
因为已添加,我已经能够使用Microsoft帐户并根据需要进行刷新