Ich baue eine Website mit Angular und Firebase. Ich verwende die Bibliotheken Angularfire2 und AngularFireAuth und GoogleAuthProvider (Google) als Authentifizierungsanbieter.Wie kann ich die Verbindung zur Google-Authentifizierung nach angularfire2/auth signOut trennen?
Hier ist mein Service-Code:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
@Injectable()
export class AuthenticationService {
user: Observable<firebase.User>;
constructor(public afAuth: AngularFireAuth) {
this.user = afAuth.authState;
}
login() {
this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider());
}
logout() {
this.afAuth.auth.signOut();
}
}
Wenn ein Benutzer abmeldet "von meiner Seite, es funktioniert, scheint aber die Google-Authentifizierung 'Cache'. Wenn sie versuchen, sich ein zweites Mal anzumelden, stoße ich auf einige Probleme:
- Der Benutzer darf kein anderes Google-Konto für die Anmeldung wählen.
- Benutzer wird automatisch eingeloggt ... was wie ein Sicherheitsproblem scheint. Ein anderer Benutzer könnte zum selben freigegebenen PC kommen und sich als der vorherige Benutzer anmelden und muss dazu kein Passwort eingeben.
Was mache ich falsch? Gibt es eine Möglichkeit, dass ich angularfire2/auth davon abhalte, diese Anmeldeinformationen zwischenzuspeichern? Gibt es eine Möglichkeit, Nutzer von Google abzumelden, wenn sie sich von meiner Website abmelden?
Ich schätze Ihre Antwort, und stimmen diese "so entworfen", aber ich glaube immer noch, Es ist eine unglückliche Benutzererfahrung. Ich würde eine Option bevorzugen, mit der ich mich mit Google-Anmeldedaten anmelden kann, mich aber NICHT gleichzeitig bei Google anmelde. – szaske