unten genannten Schritte Nach dem Token von azur Anzeige mit adal androidADAL Android: Es war uns nicht acquiretoken Antwort ‚id_token‘ zu analysieren, wenn der Anwendungsbereich als ‚openid offline_access‘ definiert ist
- Version zu erhalten: 2.0.1 -alpha
Aufruf der folgenden Methode authcontext.acquireToken (Kontext, Umfang, Umfang, additional_scope, EMAIL_SIGNIN_POLICY, client_id, redirect_uri, GetUserInfo(), PromptBehavior.Auto, "NUx = 1 &", getCallback())
- Umfang wird als "openid offline_access" definiert
- Während zusammen mit Bibliothek Debuggen der Anwendung, erfolgreiche Web-Antwort von adal empfangen wird, als
{ "not_before": "****", „token_type ":" "Bearer", "id_token": "****", "id_token_expires_in": "****", "profile_info": "****", "refresh_token": "** ** ", " refresh_token_expires_in ":" ***** " }
aber wenn adal diese Antwort parst sie nicht, wie es unten conditon in adal Bibliothek bezieht sich
Oauth2.java
if(mRequest.isIdTokenRequest()){
expiresInLookUp = "idtoken_expires_in";
token = response.get(AuthenticationConstants.OAuth2.ID_TOKEN);
}
AuthenticationRequest.java
boolean isIdTokenRequest() {
if (mScope != null && mScope.length != 0) {
for (String scope : mScope) {
if (scope.equalsIgnoreCase("openid") || scope.equalsIgnoreCase(mClientId)) {
return true;
}
}
}
return false;
}
Ändern des Umfangs als „OpenID“ ergibt Ausnahme, da sie die unter Bedingung in der Bibliothek bezieht sich
AuthenticationContext.java
if (set.contains ("OpenID")) { throw new Illegal ( „API akzeptiert keine openid als Einsatz r-bereitgestellten Umfang "); }
Ja, in der Lage erfolgreich das Token zu erhalten. \t Aber beim Speichern der Token Adal Caches es zweimal und das nächste Mal holt das Holen des Tokens von Adal Cache die Ausnahme ** Cache hat mehrere Einträge ** AuthorizationContext.java 'if (request.isIdTokenRequest()) {cacheItem.setScope (new String [] {request.getClientId()}); key.setScope (neuer String [] {request.getClientId()}); mTokenCacheStore.setItem (Schlüssel, cacheItem); } ' –