Я настраиваю свое приложение для Android на использование аутентификации и следую документации по AppAuth для Android. До сих пор я был в состоянии соединиться и сделать запрос к серверу идентификации и получил ответ, содержащий большую часть данных, которые я отправил в своем запросе, и многое другое. Я должен обменять свой код на токен доступа. Это моя проблема. Я буквально копирую и вставляю код на страницу github, https://github.com/openid/AppAuth-Android,, но он вылетает с вышеуказанной ошибкой. Я относительно новичок в Android, и это мой первый вопрос здесь, будьте спокойны, если я не представляю свой вопрос хорошо. Спасибо.
Android Studio сообщает, что код, вызывающий эту ошибку, - «authService.performTokenRequest ()». Я осмотрелся, и некоторые решили это, вызвав «authService.dispose ()» в «onDestroy ()», но это также приводит к ошибке «Произошла ошибка при выполнении doInBackground ()». Ниже приведен код, вызывающий ошибку.
authService.performTokenRequest(
resp.createTokenExchangeRequest(),
new AuthorizationService.TokenResponseCallback() {
@Override public void onTokenRequestCompleted(
TokenResponse resp, AuthorizationException ex) {
if (resp != null) {
// exchange succeeded
} else {
// authorization failed, check ex for more details
}
}
});
В моем onCreate () я так его называю.
AuthorizationResponse resp = AuthorizationResponse.fromIntent(getIntent());
AuthorizationException ex = AuthorizationException.fromIntent(getIntent());
authState = new AuthState(resp, ex);
authorizationService = new AuthorizationService(this);
authorizationService.performTokenRequest(
resp.createTokenExchangeRequest(),
new AuthorizationService.TokenResponseCallback() {
@Override public void onTokenRequestCompleted(
TokenResponse resp, AuthorizationException ex) {
authState.update(resp, ex);
if (resp != null) {
// exchange succeeded
Log.e("authstate",authState.getAccessToken());
} else {
// authorization failed, check ex for more details
}
}
});