处理 Android IBM Mobile First v8.0.2017012919 的会话超时
Posted
技术标签:
【中文标题】处理 Android IBM Mobile First v8.0.2017012919 的会话超时【英文标题】:Handling session timeout for Android IBM Mobile First v8.0.2017012919 【发布时间】:2017-03-12 07:22:29 【问题描述】:问题:即使在Maximum Token-Expiration之后,应用程序也永远不会超时。 出于测试目的,我已将 MobileFirst Platform 控制台上的最大令牌过期时间(秒)设置为 60 秒。如何根据控制台中设置的令牌过期时间正确处理会话超时?
场景: 假设用户登录到应用程序并且他保持空闲 60 秒。 他执行另一个动作,为 ex 调用不同的服务调用。获取国家/地区列表。 在日志中,我看到首先发送了对 /mfp/api/preauth/v1/preauthorize 的请求。 在调试时我发现 WLResourceRequest 中的 sendRequest 方法将范围作为 access_Restricted 并因此在这种情况下调用获取访问方法。因此它不会超时。
预期: 在这种情况下,我希望在会话超时时自动注销用户,而不是再次获取访问令牌。
这种情况可以处理吗?
【问题讨论】:
您能否提供您使用的 MFP 的确切版本。 @S.A.NortonStanley :8.0.2017012919,也已编辑问题。 【参考方案1】:预授权步骤是 OAuth 的一部分。每当应用程序没有有效的令牌来访问资源时,它就会通过 OAuth 流程,如果客户端可以回答服务器在预授权和授权步骤中提出的挑战,它会在 OAuth 流程结束时收到令牌。
您可以找到有关 MFP 8.0 here 的身份验证流程的更多信息。
在您的情况下,您的应用程序正在尝试使用过期令牌访问受保护的资源,因此它通过 OAuth 流程。
要解决此问题,您可以使用具有最长令牌到期时间的简单计时器机制,该机制应从挑战处理程序的 onsuccess
回调开始,并且每当计时器到期时,您可以认为您的应用会话已到期。
【讨论】:
以上是关于处理 Android IBM Mobile First v8.0.2017012919 的会话超时的主要内容,如果未能解决你的问题,请参考以下文章
Mobile First Native Android - 适配器不返回任何结果
IBM Worklight - AppCenter 应用程序缺少插件“com.ibm.mobile.InstallerPlugin”
使用 IBM API Manager 和 IBM Mobile First 的 OAuth