Привет, совсем недавно начал изучать 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()
}
}