Как посмотреть, если токен меняется с помощью Auth0 SDK в Android? - PullRequest
0 голосов
/ 30 января 2019

Я использую Auth0, чтобы предоставить мне токены для аутентификации на сервере.Проблема в том, что Auth0 меняет token, не сообщая, что он изменился.Поэтому со своей стороны мне нужно иметь возможность отправлять на сервер, когда token изменился из-за некоторых проблем безопасности.

Сейчас я получаю доступ к token таким образом

private fun attemptLogin() {
        val account = Auth0(BuildConfig.AUTH0_CLIENT_ID, BuildConfig.AUTH0_DOMAIN)
        account.isOIDCConformant = true
        val authentication = AuthenticationAPIClient(account)
        vLoadingScreenView.visibility = View.VISIBLE
        mUser.phone?.let { phone ->
            authentication
                    .login(phone.callingCode + phone.phoneNumber, mPinNumber, BuildConfig.AUTH0_DB_CONNECTION)
                    .setAudience(BuildConfig.AUTH0_AUDIENCE)
                    .setScope("openid offline_access")
                    .start(object : BaseCallback<Credentials, AuthenticationException> {
                        override fun onSuccess(credentials: Credentials?) {
                            credentials?.let {
                                getUserPref()?.let { user ->
                                    user.authorization = "${credentials.type} ${credentials.accessToken}"
                                    user.refreshToken = "${credentials.type} ${credentials.refreshToken}"
                                    setUserPref(user)
                                    getUserDetails()
                                }
                            }
                        }

                        override fun onFailure(error: AuthenticationException?) {
                            runOnUiThread {
                                onInvalidPin()
                                vLoadingScreenView.visibility = View.GONE
                                longToast(getString(R.string.error_occurred))
                            }
                        }
                    })
        }
    }

Используемый мной класс Credentials имеет флаг expires_at, и я могу сравнить текущую дату с expires_at, но некоторые другие факторы могут помешать и изменить токен, так что я не думаю, что этохорошее решение.Может кто-нибудь дать мне какую-то информацию по этой проблеме?

...