Ich habe derzeit einen Login-Flow mit Facebook, der 100% funktioniert und ich habe Google einfach in die Gleichung eingefügt. Ich habe den Code so geschrieben, dass meine Google-Provider-Tokens genauso formatiert und zwischengespeichert werden wie meine Facebook-Token. Mein Code erhält die Facebook und Google-Token und macht das Folling: (das folgende Beispiel ist für die Google-Login):Azure mobileserviceclient Login gibt Authentifizierungsfehler zurück (401)
USER_GOOGLE_TOKEN = new JsonObject();
USER_GOOGLE_TOKEN.addProperty("access_token", accessToken);
cacheProviderToken(USER_GOOGLE_TOKEN.toString());
setCurrentProvider("google");
Dann in meiner Authentifizierungsmethode in der Tätigkeit, hier ist, wie ich mobileserviceclient.login:
MobileServiceAuthenticationProvider provider = null;
if (getCurrentProvider().equals("facebook")){
provider = MobileServiceAuthenticationProvider.Facebook;
} else if (getCurrentProvider().equals("google")) {
provider = MobileServiceAuthenticationProvider.Google;
}
token.addProperty("access_token", googleToken);
ListenableFuture<MobileServiceUser> mLogin = mClient.login(MobileServiceAuthenticationProvider.Google, getProviderToken());
Das Problem ist, dass Facebook funktioniert und Google produziert eine 401 nicht autorisiert. Der spezifische Fehler, den ich erhalte (bevor die Zukunft fehlschlägt), ist: W/DefaultRequestDirector: `Authentifizierungsfehler: Kann auf keine dieser Herausforderungen antworten: {}. Azure-Protokolle zeigen, dass es sich um ein nicht autorisiertes 401 handelt.
Ich drucke erfolgreich das Google-Anmelde-Token und formatiere es wie meine Facebook-Token, bevor ich versuche, sie zu verwenden. Sind meine Google-Schlüssel falsch? Ich habe sie schon einmal neu erstellt und habe versucht, Origins auf https zu setzen, habe verschiedene Schlüsselkombinationen ausprobiert und meine google-services.json sogar losgeworden (anscheinend ist das nicht nötig). Ich habe den Clientschlüssel nicht verwendet, der unter this google doc generiert wurde.
Eine weitere Frage hier ist, wie die Authentifizierungseinstellungen meiner Azure Mobile App ins Spiel kommen? Ich hatte ursprünglich mein Facebook konfiguriert, bevor ich von einem MobileService zu MobileApp migrierte, und jetzt muss ich die Funktion "Turnkey-Authentifizierung" nicht mehr verwenden, damit es funktioniert. Ich ging voran und gab meinen App-Schlüssel und mein Geheimnis für Facebook ein, aber es funktioniert definitiv unabhängig davon, ob dies aktiviert ist oder nicht. Ist das ein notwendiges Feature für oauth?
Auch Je nach dem Token-Format auf Anmeldung und der Ein/Aus-Status des Authentifizierungs-Funktion, die errror: W/DefaultRequestDirector: Authentication error: Unable to respond to any of these challenges: {}
, wird Text in den geschweiften Klammern über dem azurblauen Endpunkt haben.
Vielen Dank, wenn Sie helfen können. So ein wählerisches Problem hier.
Können Sie den letzten erarbeiten - über azur Endpunkt? Dieser Fehler ist grundsätzlich 401 und sollte nichts mit dem Azure haben. –
Bei der Authentifizierung von mobilen Apps enthalten die geschweiften Klammern Informationen zu "Trägern", wenn ich die Einstellung "Was ist zu tun, wenn nicht authentifiziert" festlegen. Ich habe auch einige neue Informationen für Sie. Letzte Nacht bin ich ins klassische Portal gegangen und habe die Facebook-Strings gesehen, als ich die Authentifizierung im Tab "Identität" des mobilen Dienstes eingerichtet habe. Ich habe versucht, die Google-Werte im Konfigurationsbereich neben den Facebook-Werten zu codieren, da der Identifizierungsreiter weg ist. Es funktionierte nicht, obwohl die App "Auth" deaktiviert wurde. –