移动应用 / Web SPA 的单点登录¶
如果您正在构建基于令牌的网站或移动应用,可以通过 SDK 启用单点登录(SSO)功能。
启用 SSO 后,终端用户在登录第一个应用时仍需输入身份验证凭据。之后登录第二个应用时,会看到一个继续屏幕,只需点击一下即可登录,无需再次进行身份验证。
说明
请注意,启用 SSO 功能时,进行身份验证时不要设置 prompt 参数(例如 prompt=login),否则会强制显示登录页面。
当终端用户从启用了 SSO 的应用登出时,所有应用都会同时登出。
配置 SDK 时,将 is sso enabled 选项设置为 true,即可开启此功能。
var authgearOptions = new AuthgearOptions
{
ClientId = CLIENT_ID,
AuthgearEndpoint = ENDPOINT,
IsSsoEnabled = true,
};
// Android
#if __ANDROID__
var authgear = new AuthgearSdk(GetActivity().ApplicationContext, authgearOptions);
#else
#if __IOS__
var authgear = new AuthgearSdk(UIKit.UIApplication.SharedApplication, authgearOptions);
#endif
#endif
这类 SSO 需要在移动应用和系统浏览器之间共享 Cookie,因此底层在 iOS 上使用 ASWebAuthenticationSession,在 Android 上使用 Custom Tab,会弹出如下弹窗:

如果想避免出现上述弹窗,需要改为在 iOS 上使用 WKWebView、在 Android 上使用 WebKitWebView 作为 UIImplementation;并改用 App2App 登录 在移动应用之间共享登录会话,以及使用预验证 URL在移动端和 Web 端之间共享。