web-dev-qa-db-de.com

Wie kann ich meine Rails-Anmelde-/Registrierungsdaten zu einer React Native-App hinzufügen?

Ich habe eine React Native-App entwickelt, die meine Rails-App als Back-End verwendet, und bin an dem Punkt angelangt, an dem die Authentifizierung funktionieren muss. Der Benutzer muss in der Lage sein, sich auf dieselbe Weise wie über die Rails-App, die Devise verwendet, anzumelden. Ich bin nicht sicher, wie ich das in React Native/iOS implementieren soll.

13
spitfire109

sie müssen die Authentifizierung mit token verwenden. Schauen Sie sich den Abschnitt Authentication dieses großartigen Tutorials an. Sie finden eine grundlegende Implementierung mit Devise: http://fancypixel.github.io/blog/2015/01/28/react-plus -flux-backed-by-Rails-api/

Nachdem Sie den Token-Auth im Backend eingerichtet haben, fügen Sie ein Anmeldeformular in Ihre native native App ein. Beim Senden senden Sie die Creds an das Backend und erhalten das Token, das Sie dann in Ihrem App-Status speichern (oder Sie können dies tun) beharrt es in asyncstore). Dann hängen Sie das Token an jede Anforderung an das Backend in einem HTTP-Header an.

15
michalvalasek

Schauen Sie sich diesen Artikel an, wo ich ausführlich beschrieben habe, wie er erreicht werden kann: 

https://medium.com/@sankalpsingha/creating-react-native-authentication-with-a-Rails-backend-39d94e359984

Grundsätzlich müssen Sie Token-basiertes Authentifizierungssystem verwenden. Für den Rails-Teil können Sie einen Edelstein wie den Simple-Token-Auth verwenden. Es erstreckt sich auf Devise und fügt das Token-System hinzu. 

Sobald dies erledigt ist, können Sie einen Abrufaufruf verwenden, um Ihren Benutzernamen und Ihr Kennwort zu senden und ein Token vom Server zurückzuholen, das Sie im Geschäft beibehalten können. Es ist ratsam, Redux für solche Szenarien zu verwenden. 

Sie können dann das Token verwenden, um alle weiteren Anforderungen an die authentifizierten Routen zu senden.

0
Sankalp Singha

Sie können auch nur eine grundlegende Autorisierung durchführen. React Native speichert den Cookie wie ein normaler Browser. Das einzige, was Sie noch brauchen, ist das CSRF-Token zu speichern, damit Sie "Post" -Anfragen stellen können. Wenn Sie nur 'get' benötigen, benötigen Sie nicht einmal das csrf-Token.

0
eyal83

Ich habe ein Beispielprojekt geschrieben, in dem gezeigt wird, wie Sie sich über React Native Webview authentifizieren, um sich bei Ihrem vorhandenen Backend anzumelden. https://github.com/ryanmcdermott/react-native-login

0
Ryan McDermott