Задать вопрос
@twen299

Как получить необходимый токен в Kotlin / Java?

Привет, совсем недавно начал изучать Kotlin и столкнулся с проблемой.
Есть сайт, на котором находится API, для доступа к методам которого необходим Bearer Token. ( например, test-crm.site.com ). Доступ к сайту реализуется через ресурс ( OAuth 2 and OpenID Connect ). ( например, sso-test.site.com ). У меня есть client ID, client Secret, Логин и пароль. Также есть openid-configuration. Мне необходимо, чтобы в приложение возвращался токен для нужного мне API. Я пытался использовать для этого Retrofit, но получаю только Bearer Token для второго сайта ( sso-test.site.com ). Не понимаю как получить его для ( test-crm.site.com ). Так же пробовал использовать библиотеку AppAuth, но получаю ошибку, что redirect_uri недоступен для данного clientID.
private fun setAuthToken() {
        try {
            val (request, response, result) = apigeeTokenUrl.httpPost(listOf(
                "grant_type" to grantType,
            ))
                .authentication().basic(clientId,clientSecret)
                .responseString()

            when (result) {
                is Result.Success -> {
                    var gson = Gson()
                    val tokenResultJson = gson.fromJson(result.value, AuthResult::class.java)
                    token = tokenResultJson!!.access_token!!
                    tokenType = tokenResultJson!!.token_type!!
                    refreshToken = tokenResultJson!!.refresh_token!!
                    Log.d(ContentValues.TAG, "token $token")
                    Log.d(ContentValues.TAG, "token $refreshToken")
                    Log.d(ContentValues.TAG, "token type $tokenType")

                }
                is Result.Failure -> {
                    // handle error
                    println("error")
                }
            }

        }catch (e: Exception){
            e.printStackTrace()
        }
    }
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы