我正在设置我的android应用程序以使用身份验证,并且正在遵循AppAuth for Android上的文档。到目前为止,我已经能够连接并向身份服务器发出请求,并获得了包含我在请求中发送的大部分数据以及更多信息的响应。我应该将我的代码交换为访问令牌。这是我的问题。我实际上是将代码复制并粘贴到github页面上,https://github.com/openid/AppAuth-Android,但由于上述错误而崩溃。我是android的新手,这是我的第一个问题,如果我提出的问题不好,请对我轻松。谢谢。
Android Studio表示导致此错误的代码是“ authService.performTokenRequest()”。我环顾四周,有人通过在“ onDestroy()”中调用“ authService.dispose()”解决了该问题,但也因“执行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
}
}
});
答案 0 :(得分:0)
您可以处置authService onDestroy()。 例如您有
AuthorizationService mAuthService = new AuthorizationService(context);
@Override
protected void onDestroy() {
mAuthService.dispose();
mAuthService = null;
}