在使用AppAuth库时,我们需要在用户授权完成并获得访问令牌(access token)的情况下,及时地通过刷新令牌(refresh token)来更新访问令牌的有效期。以下是刷新令牌的代码示例:
AuthorizationService.refreshToken(
context, // Android context
TokenRequest.Builder(tokenEndpoint, clientId)
.setRefreshToken(refreshToken)
.build(),
clientAuthentication,
SERVICE_NAME,
null /* additional refresh parameters */,
new AuthorizationService.TokenResponseCallback() {
@Override
public void onTokenRequestCompleted(
TokenResponse response, AuthorizationException ex) {
if (response != null) {
// Use the access token and/or refresh token
handleAccessTokenResponse(response.accessToken);
handleRefreshTokenResponse(response.refreshToken);
} else {
// authorization failed, check ex for more details
Log.w(TAG, "Token refresh failed", ex);
}
}
});
以上示例代码中,我们调用了AuthorizationService的refreshToken方法来刷新令牌。在TokenRequest.Builder中,我们需要将之前获得的刷新令牌(refresh token)传入,并通过AuthorizationService.TokenResponseCallback回调方法来处理刷新令牌的结果。如果刷新令牌成功,我们可以在回调方法中使用response对象获取更新后的访问令牌(access token)和刷新令牌(refresh token);如果刷新令牌失败,则通过AuthorizationException对象获取失败的原因并进行处理。