处理 Android IBM Mobile First v8.0.2017012919 的会话超时

Handling session timeout for Android IBM Mobile First v8.0.2017012919

问题:即使在最大令牌过期之后,应用程序也永远不会超时。 出于测试目的,我已将 MobileFirst Platform 控制台上的最大令牌过期时间(秒)设置为 60 秒。如何根据控制台中设置的令牌有效期正确处理会话超时?

场景: 假设用户登录到应用程序并保持空闲 60 秒。 他执行另一个操作,为 ex 调用不同的服务调用。获取国家列表。 在日志中,我看到首先发送了对 /mfp/api/preauth/v1/preauthorize 的请求。 在调试时,我发现 WLResourceRequest 中的 sendRequest 方法获取的范围为 access_Restricted,因此在此 case.Hence 中调用获取访问方法,它不会超时。

预计: 在这种情况下,我希望在会话超时时自动注销用户,而不是再次获取访问令牌。

这种情况可以处理吗?

预授权步骤是 OAuth 的一部分。每当应用程序没有有效令牌来访问资源时,它都会通过 OAuth 流程,如果客户端可以回答服务器在预授权和授权步骤中抛出的挑战,它会在 OAuth 流程结束时收到令牌。

您可以找到有关 MFP 8.0 的身份验证流程的更多信息here

在您的情况下,您的应用程序正在尝试使用过期令牌访问受保护的资源,因此它会通过 OAuth 流程。

要解决此问题,您可以使用具有最大令牌过期时间的简单计时器机制,该机制应在您的质询处理程序的 onsuccess 回调中开始,并且每当计时器过期时,您可以认为您的应用程序会话已过期。