Ich werde ein Login-System mit OAuth2.0 für meine app machen, ist alles richtig, bis Reichweite abgelaufen Token!OAuth Auto Refresh Token, wenn Token abgelaufen ist
Für diesen Abschnitt schrieb ich diese Methode:
public static String getAccessToken(){
String accessToken;
if(!UserSession.getInstance().isExpired()){
return UserSession.getInstance().getUserAuthAccessToken();
} else {
PostRequests.getFreshToken(new ResultListener<String>() {
@Override
public void getResult(String result, boolean error) {
if(error){
} else {
Authorization authorization = gson.fromJson(result, Authorization.class);
UserSession.getInstance().setUserAuthorizationInfo(authorization.AccessToken, authorization.TokenType, authorization.Expiration, authorization.RefreshToken, authorization.Scope);
accessToken = authorization.AccessToken;
}
}
});
}
}
Wie Sie sehen können, kehre ich Zugriffstoken Speicher in meiner app prefrences geteilt, wenn nicht abgelaufen ist, aber wenn abgelaufen war, ich mache Refresh Request (Volley + Gson), um das frisch zu machen.
Aber ich kann nicht accessToken
von inneren Klasse erreichen :(
Wie ich String von dieser Methode zurückgeben kann?
Seine Es hilft nicht, weil ich '.getAccessToken() 'verwenden werde, um Token an das Ende meiner Anfrage-URL anzuhängen, wie' final String URL = Constant.BaseUrl + Constant.Token + getAccessToken() ' – MAY3AM
kann man sowas tun diese öffentlichen void usingGetAccessTokenMethod() { getAccessToken (neu ITokenListener() { @Override public void onTokenObtained (String accessToken) { final String URL = Constant.BaseUrl + Constant.Token + accessToken + Constant.Limit; \t \t \t // Verwenden Sie die URL hier } }); } aber wie gesagt, das ist einer der Weg. –