处理 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

IBM Mobile First Push Notification 安全测试

注册客户 IBM Mobile First 时出错

使用 IBM Mobile First Platform 生成 APK