【问题标题】:OKTA SSO Logout issueOKTA SSO 注销问题
【发布时间】:2019-12-15 10:41:37
【问题描述】:
我正在使用 okta-sdk-appauth-android 库在移动原生 android 应用中进行身份验证。
登录有效,但我在注销和下一个登录周期时遇到问题。当我使用库中的注销方法时,在下一个登录周期webview 显示登录屏幕,但它立即登录用户而没有手动提供登录名和密码的选项。
这是正常行为吗?使用这种登录方式,我无法在注销后立即登录另一个用户。只有有时有提供登录名和密码的选项……这取决于什么?我可以在每次注销后强制提供登录名和密码吗?
即使在我的访问和刷新令牌过期后,它也会自动登录用户。我正在使用本机应用配置 + PKCE。
【问题讨论】:
标签:
android
authentication
okta
pkce
【解决方案1】:
我解决了这个问题如下:
- 按下注销按钮后立即调用 webAuthClient.signOutOfOkta(Activity)。
- ResultCallback中会返回结果,看是否登录。
- 调用 webAuthClient.sessionClient.clear()
像这样:
webAuthClient.registerCallback(object : ResultCallback<AuthorizationStatus, AuthorizationException> {
override fun onCancel() {
network_progress.hide()
showMessage(getString(R.string.operation_cancelled))
}
override fun onError(msg: String?, exception: AuthorizationException?) {
signInError(msg, exception)
}
override fun onSuccess(result: AuthorizationStatus) {
network_progress.hide()
when (result) {
AUTHORIZED -> signInSuccess()
SIGNED_OUT -> webAuthClient.sessionClient.clear()
}
}
}, this)