【发布时间】:2018-06-13 21:54:15
【问题描述】:
因此,我被要求帮助将 Simple Saml SSO 集成到我们的移动应用程序中,但在登录我们的 Android 应用程序后,我遇到了保持会话活动的问题。
注意:我敢打赌有更好的方法来做到这一点,但这是我被指示实施它的方式。
我在加载服务提供商站点的主要活动中创建了一个 WebView。当用户正确登录时,WebView 然后由服务提供者重定向到特定于我们应用程序的保持活动 URL。然后将此 WebView 的可见性设置为隐藏,并使会话在“后台”中保持活动状态
服务提供者提供了一个保持活动的到期日期,我们设置了一个计时器来安排 WebView 重新加载/刷新,以便会话保持活动状态。
我注意到的是,在第一次重新加载 WebView 时将重定向回服务提供者的登录 url。如果用户未登录,重定向是我们正在执行的 SSO 类型的正确行为。用户之前已成功登录,但在第一次重新加载时,就像 WebView 丢失了所有以前的会话信息/数据。
是否可以设置 WebView 设置以使会话在重新加载之间保持持久?
我已经在我们的 Apple 应用上实现了这一点,Swift 中的 WebView 能够在每次刷新时保持会话处于活动状态。
我已确认刷新前 WebView 的 url 是正确的保持活动 url。
----更新-----
所以我尝试使用 WebView 的 evaluateJavascript 函数将窗口的位置设置为保持活动的 url,并且会发生相同的会话信息丢失。然后我尝试调用窗口的位置重新加载函数,仍然没有保存会话信息。
我想知道 Chrome 应用程序是否会出现同样的问题,所以我尝试在常规 Chrome 应用程序中登录服务提供商的 url。登录后,我尝试刷新保持活动 url,会话信息是持久的。
【问题讨论】:
标签: android android-webview single-sign-on saml