J'ai créé une application React Native qui utilise mon application Rails comme back-end et j'ai atteint le point où j'ai besoin de l'authentification. L'utilisateur doit pouvoir se connecter de la même manière qu'il le ferait via l'application Rails, qui utilise Devise. Je ne sais pas comment implémenter cela dans React Native/iOS.
vous devez utiliser le authentification par jeton . Consultez la section Authentification de ce didacticiel génial. Vous trouverez une implémentation de base avec Devise: http://fancypixel.github.io/blog/2015/01/28/react-plus -flux-backed-by-Rails-api/
En gros, une fois que vous avez configuré l’authentification du jeton sur le backend, vous insérez un formulaire de connexion dans votre application native rea, puis vous envoyez les créations au backend et vous recevez le token que vous avez stocké dans l’état de votre application (ou vous pouvez le persister dans asyncstore). Ensuite, vous attachez le jeton à chaque demande au serveur dans un en-tête HTTP.
Jetez un oeil à cet article où j'ai écrit en profondeur comment y parvenir:
Fondamentalement, vous devez utiliser Système d'authentification basé sur les jetons . Pour la partie Rails, vous pouvez utiliser une gemme comme simple-token-auth. Il s'étend sur Devise et y rajoute le système Token.
Une fois cette opération effectuée, vous pouvez utiliser un appel d'extraction pour envoyer votre nom d'utilisateur et votre mot de passe et récupérer un jeton sur le serveur, que vous pouvez conserver dans le magasin. Il est sage d'utiliser Redux pour des scénarios comme celui-ci.
Vous pouvez ensuite utiliser un jeton pour envoyer toutes les demandes ultérieures pour accéder aux itinéraires authentifiés.
Vous pouvez également simplement faire une autorisation de base. React Native enregistre le cookie pour vous comme un navigateur normal. La seule autre chose dont vous avez besoin est de sauvegarder le jeton CSRF afin que vous puissiez faire des demandes de "post". Si vous avez seulement besoin de 'get', vous n'avez même pas besoin du jeton CSRF.
J'ai écrit un exemple de projet qui montre comment s'authentifier via une vue Web native React pour se connecter à votre serveur existant. https://github.com/ryanmcdermott/react-native-login