2017-06-11 3 views
0

Google Zugang zu Token nach Feuerbasis Auth Login, ich weiß, ich einfach das tun kann:Get Google Zugriffstoken

firebase.auth().signInWithPopup(provider).then(function(result) { 
     var token = result.credential.accessToken; 
} 

aber was ist, wenn der Benutzer bereits authentifiziert und ich brauche das Token? Gibt es eine Möglichkeit, es aus der Firebase-Authentifizierung zu extrahieren?

Ich bin durch jeden Wert von authState gegangen, aber ich konnte nicht das Google-Zugriffstoken finden, nach dem ich gesucht habe.

Antwort

3

Sie können das Zugriffstoken nicht vom Listener onAuthStateChanged oder currentUser abrufen. Sie können es nur unmittelbar nach der Authentifizierung erhalten, wenn Sie signInWithPopup, reauthenticateWithPopup, linkWithPopup, getRedirectResult usw. aufrufen. Firebase Auth verwaltet keine OAuth-Tokens für Benutzer. Wenn Sie stark über diese Funktion fühlen, wählen Sie bitte eine Feature-Anfrage für sie auf dem Firebase Forum-Datei: https://groups.google.com/forum/#!forum/firebase-talk

können Sie auch nur die Gapi Bibliothek des Google-Zugriffstoken zu erhalten und geben es über signInWithCredential zu versuchen Sie es in Firebase . Der Vorteil ist, dass GApi dieses OAuth-Token für Sie verwaltet.

+0

Danke! Ich habe versucht: 'let token = gapi.auth2.getAuthInstance(). CurrentUser.get(). GetAuthResponse(). Id_token; this.afAuth.auth .signInWithCredential (Token) 'aber es sagt' 'Credential" muss eine gültige Anmeldeinformationen sein. ". Irgendeine Idee, was ich an diese Methode weitergeben muss, um mich zu authentifizieren? – TheUnreal

+1

Sie können nicht einfach ein einfaches ID-Token übergeben, Sie müssen es in einen Berechtigungsnachweis verpacken. 'signInWithCredential (firebase.auth.GoogleAuthProvider.credential (Token))' – bojeil

Verwandte Themen