2016-05-24 16 views
0

Ich möchte die Verknüpfung eines Twitter-Kontos mit der Authentifizierung eines Website-Benutzers durch Firebase unterstützen. Dies bedeutet, dass ich gemäß dem folgenden Link die Anmeldeinformationen des Auth-Providers erhalten muss.Firebase-Authentifizierung - Verknüpfen eines Twitter-Kontos

https://firebase.google.com/docs/auth/web/account-linking#link-auth-provider-credentials-to-a-user-account

Die Dokumente zeigen, Google, Facebook und E-Mail. Allerdings möchte ich twitter verwenden ... Also auf der API-Suche hier:

https://firebase.google.com/docs/reference/js/firebase.auth.TwitterAuthProvider#TwitterAuthProvider

Ich nenne müssen:

var credential = firebase.auth.TwitterAuthProvider.credential(token,secret); 

, die ein Problem ... ist Muss ich wirklich setzen der twitter auth geheim im plain text javascript? Offensichtlich scheint dies ein Sicherheitsrisiko zu sein ???

Antwort

-1

Es gibt zwei Wege für Authenticate Using Twitter on Web App

1.Handle the sign-in flow with the Firebase SDK

2.Handle the sign-in flow manually

Sie müssen versuchen, die Anmeldeinformationen des Auth-Anbieter zu bekommen.

Der einfachste Weg zur Authentifizierung Ihrer Benutzer mit Firebase unter Verwendung ihrer Twitter-Konten ist die Anmeldung mit dem Firebase SDK. Gehen Sie nach den folgenden Schritten:

Schritt 1: Erstellen Sie eine Instanz des Twitter-Provider-Objekt:

var provider = new firebase.auth.TwitterAuthProvider(); 

Schritt 2: Authentifizieren mit Firebase mit dem Twitter-Provider-Objekt. Sie können Ihre Benutzer auffordern, sich mit ihren Twitter-Konten anzumelden, indem sie entweder ein Popup-Fenster öffnen oder auf die Anmeldeseite umleiten. Die Umleitungsmethode wird auf mobilen Geräten bevorzugt.

  • Um mit einem Pop-up-Fenster anmelden, rufen signInWithPopup:

    firebase.auth().signInWithPopup(provider).then(function(result) { 
    // This gives you a the Twitter OAuth 1.0 Access Token and Secret. 
    // You can use these server side with your app's credentials to access the Twitter API. 
    var token = result.credential.accessToken; 
    var secret = result.credential.secret; 
    // The signed-in user info. 
    var user = result.user; 
    // ... 
    }).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    // The email of the user's account used. 
    var email = error.email; 
    // The firebase.auth.AuthCredential type that was used. 
    var credential = error.credential; 
    // ... 
    }); 
    

Beachten Sie auch, dass Sie die Twitter-Anbieter OAuth-Token abrufen kann, die verwendet werden können, um Weitere Daten über die Twitter-APIs abrufen.

  • So melden Sie sich von Seite zu der in Zeichen-Umleitung, rufen signInWithRedirect:

    firebase.auth().signInWithRedirect(provider);

Dann können Sie auch die OAuth-Token des Twitter-Provider abrufen durch den Aufruf getRedirectResult wenn Ihre Seite geladen wird:

firebase.auth().getRedirectResult().then(function(result) { 
    if (result.credential) { 
    // This gives you a the Twitter OAuth 1.0 Access Token and Secret. 
    // You can use these server side with your app's credentials to access the Twitter API. 
    var token = result.credential.accessToken; 
    var secret = result.credential.secret; 
    // ... 
    } 
    // The signed-in user info. 
    var user = result.user; 
}).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    // The email of the user's account used. 
    var email = error.email; 
    // The firebase.auth.AuthCredential type that was used. 
    var credential = error.credential; 
    // ... 
}); 
+1

Vielen Dank für die Antwort, aber das hilft nicht bei der Verknüpfung eines Kontos (siehe: https://firebase.google.com/docs/auth/web/account-linking#link-auth-provider- credentials-to-a-user-account) Sie rufen nicht signInWithRedirect oder signInWithPopup auf, Sie melden sich nicht mit twitter an. –

Verwandte Themen