Je construis un site web en utilisant Angular et Firebase. J'utilise les bibliothèques Angularfire2 et AngularFireAuth et GoogleAuthProvider (Google) comme fournisseur d'authentification.Comment se déconnecter de l'authentification Google après angularfire2/auth signOut?
Voici mon code de service:
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();
}
}
Lorsqu'un utilisateur 'déconnecte' de mon site, cela fonctionne, mais semble 'cache' Google l'authentification. Donc, quand ils tentent de se connecter une seconde fois, je rencontre quelques problèmes:
- L'utilisateur ne peut pas choisir un autre compte Google avec lequel s'identifier.
- L'utilisateur est automatiquement connecté ... ce qui semble être un problème de sécurité. Un autre utilisateur peut accéder au même PC partagé et se connecter en tant qu'utilisateur précédent et n'est pas obligé de taper un mot de passe pour le faire.
Qu'est-ce que je fais mal? Y at-il un moyen que je peux arrêter angularfire2/auth de mettre en cache ces informations d'identification? Existe-t-il un moyen de déconnecter les utilisateurs de Google lorsqu'ils se déconnectent de mon site?
Je vous remercie de votre réponse, et accepte cela est "comme prévu", mais je crois encore c'est une expérience d'utilisateur malheureuse. Je préférerais une option permettant de me connecter en utilisant les informations d'identification Google, mais PAS me connecter à Google en même temps. – szaske