2016-07-07 17 views
0

Ich arbeite an einer Android-Anwendung. Ich möchte in der Lage sein, eine vollständige Abmeldung zu erzwingen und es so zu haben, wenn ich mich wieder anmelde, ist der Benutzer gezwungen, seinen Benutzernamen und sein Passwort einzugeben. Ich weiß, dass dies mit der Google API leicht möglich ist, aber ich würde gerne die integrierte Unterstützung verwenden, die azure bietet.Azure Auth - Erzwingen einer vollständigen Abmeldung mit MobileServicesClient

Gegenwärtig scheint der Aufruf von mclient.logout() oder das Abrufen einer neuen Instanz von mclient nicht zu funktionieren (selbst wenn alle Token gelöscht wurden). Es scheint immer noch irgendwie zu erinnern, welches Konto ich das erste Mal wähle, wenn ich mclient.login anrufe, weil das Google-Fenster auftaucht, aber dann sofort schließt, ohne etwas anzuzeigen, und es loggt automatisch in das Konto, das ich mich beim ersten Mal angemeldet habe. Ich möchte den Benutzer zwingen, ihre Google-Informationen nach einer Abmeldung und einem Log-in eingeben.

Die einzige Möglichkeit, die ich bisher gefunden habe, um den Benutzer zum erneuten Eingeben der Informationen zu zwingen, ist das Löschen der gesamten Anwendungsdaten /Zwischenspeicher.

Dann, wenn ich mclient.login() erneut aufrufen, ist der Benutzer gezwungen, ihre Informationen erneut eingeben. Dies ist jedoch nicht ideal, weil ich andere Dinge im Cache speichere, die ich nicht jedes Mal löschen möchte.

Kann mir jemand in die richtige Richtung zeigen oder mir sagen, welche genauen Dateien/Ordner ich aus dem Cache löschen muss, damit azurblau/google nicht versucht, dasselbe Konto zu verwenden, das beim ersten Mal verwendet wurde.

Warum passiert das? Es scheint wie logout() aufrufen und dann wieder anmelden() sollte eine vollständige relog erzwingen, aber es tut nicht Azure/google tut etwas im Hintergrund, das irgendwie erinnert, welches Konto ich auch mit allen Login-Token entfernt und eine komplett neue verwendet Instanz von mclient

Antwort

0

mclient.login() funktioniert nicht, weil der Chrome-Browser die Anmeldeinformationen in Cookies gespeichert hat, und das nächste Mal, wenn Sie den Authentifizierungsanbieter login, der Browser automatisch die Cookies lesen und den Login-Fluss beenden.

Bitte versuchen Sie den folgenden Code, um das Cookie zu entfernen, wenn Abmeldung:

mClient.logout(); 
    CookieManager cookieManager = CookieManager.getInstance(); 
    cookieManager.removeAllCookie();