android - OKTA SSO 注销问题
问题描述
我正在使用okta-sdk-appauth-android
库在移动原生 android 应用程序中进行身份验证。
登录有效,但我在注销和下一个登录周期时遇到问题。当我使用库中的注销方法时,在下一个登录周期webview
中显示登录屏幕,但它立即登录用户而没有手动提供登录名和密码的选项。这是正常行为吗?使用这种登录方式,我无法在注销后立即登录另一个用户。只有有时有提供登录名和密码的选项……这取决于什么?我可以在每次注销后强制提供登录名和密码吗?即使在我的访问和刷新令牌过期后,它也会自动登录用户。我正在使用本机应用程序配置 + PKCE
.
解决方案
我解决了这个问题如下:
- 按下注销按钮后立即调用 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)
推荐阅读
- firebase - 如何将 StreamBuilder 与模型一起使用并从 firestore 获取数据?
- numpy - 使用点绘制线性回归线
- python - 如何从另一个 Python 文件中获取值?
- python - 使用 python curses 库进行多线程时的光标输入错误
- kotlin - 有没有办法为 Kotlin 类定义隐式 ctor?
- reactjs - 动态表单 - 如何使用反应钩子更新“onChange”事件中多个表单字段的值?
- javascript - Highchart 条形图从中心而不是左侧开始条形图
- flutter - Flutter 通过服务器响应构建 TabBarView 项
- python - 有没有正确的方法可以使这段代码工作?
- go - 如何将字符串转换为结构数组