2017-02-07 13 views
0

Ich möchte Benutzer mit Twitter in meiner React Native App authentifizieren. Ich benutze die react-native-oauth-Bibliothek https://github.com/fullstackreact/react-native-oauthImplementierung von Firebase Auth mit React Native + react-native-oauth

Ich möchte nur sicherstellen, dass ich auf die effektivste Weise darüber gehe.

Das Wichtigste zuerst füge ich Feuerbasis zu meiner App in einer config/constants Datei

import firebase from 'firebase' 

firebase.initializeApp({ 
    apiKey: "MY-API-KEY", 
    authDomain: "MY-AUTH-DOMAIN", 
    databaseURL: "MY-DATABASE-URL", 
    storageBucket: "MY-STORAGE-BUCKET", 
    messagingSenderId: "MY-MESSAGING-ID" 
}); 

const ref = firebase.database().ref() 
const firebaseAuth = firebase.auth() 

export { ref, firebaseAuth } 

Dann installiere ich die reagieren-native-oauth Bibliothek

Nun, meine redux/authentication in ich wahrscheinlich so etwas tun würde Ich versende schließlich eine Aktion, die das Antwortobjekt in meinem Redux-Authentifizierungsstatus speichert, um es später zu verwenden.

import OAuthManager from 'react-native-oauth'; 

const manager = new OAuthManager('Nimbus') // I'm sort of confused on what the name of the app should be. Is it just the name of the app when I ran react-native init? Or something else? 

export default function handleAuthWithFirebase() { 

    // Some redux thunk 

    return function (dispatch, getState) { 
     dispatch(authenticating()); 
     manager.configure({ 
      twitter: { 
       consumer_key: 'SOME_CONSUMER_KEY', 
       consumer_secret: 'SOME_CONSUMER_SECRET' 
      }, 
     }); 

     manager.authorize('twitter', {scopes: 'profile email'}) 
      .then(resp => dispatch(getProfile(resp))) // Save response object 
      .catch(err => console.log('There was an error')); 

     // Do some other stuff like pushing a new route, etc. 
    } 
} 

Dann endlich, in SplashContainer.js würde ich dies die handleSignIn Methode hinzufügen (letztlich von der Präsentations-Komponente genannt).

Entschuldigung, ich weiß, es war eine Menge, aber ich möchte nur sicherstellen, dass ich das richtig implementiere. Irgendwelche Vorschläge, um den Fluss zu verbessern, würden geschätzt werden. Vielen Dank!

Antwort

Verwandte Themen