Mettre en œuvre Facebook API de connexion avec reactjs
Je suis en train de travailler sur l'utilisation de Facebook Javascript SDK pour l'authentification. J'ai été en mesure d'importer le SDK correctement et de mettre un bouton j'Aime sur ma page. Mais, le facebook bouton de connexion doit être enveloppé dans la balise:
<fb:login-button/>
J'ai actuellement tout le code de la Facebook Login tutoriel collé dans mon index.html, le seul fichier html dans mon projet, qui abrite le Réagir application. Mais, j'ai besoin de mettre la dernière partie, qui a la réelle bouton de connexion, dans mon Réagir composant. Quand j'ai essayé de le faire, j'ai l'erreur suivante:
ReactifyError: /Users/ritmatter/reps/js/components/Signup.jsx: Parse Error: Line 82: Unexpected end of input while parsing file: /Users/ritmatter/reps/js/components/Signup.jsx
sdk.js:61 The "fb-root" div has not been created, auto-creating
ping?client_id=894010190618709&domain=localhost&origin=1&redirect_uri=http%3A%2F%2Fstatic.ak.facebo…:1 Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.
Comment puis-je obtenir le bouton de connexion à réagir?
- Ce tutoriel vidéo m'a aidé sur ce youtu.être/9MhLHkf7Ifs
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé comment modifier le Facebook tutoriel pour la Connexion de l'API avec ReactJS. J'espère que cela aide quelqu'un d'autre de la difficulté avec cela.
Tout d'abord, dans la réagir la composante où vous souhaitez que le lien de Connexion, d'inclure ce code:
Puis, dans votre méthode render, assurez-vous d'avoir le code HTML qui appellent handleClick:
Remarque, c'est le même code du tutoriel, mais placée dans un ReactJS composant. La seule différence est que vous devez lier cette stratégiquement pour faire le Facebook fonctions de l'API partie de vos réagir composant. Cette connexion se termine avec un message de réponse analysées à partir de la réponse donnée par FB.getLoginStatus(). Vous pouvez également prendre le pion hors de l'objet de réponse et l'envoyer à votre backend d'authentification avec quelque chose comme passeport-facebook-jeton.
FB.login(this.checkLoginState);
, sinon checkLoginState sera exécuté de façon prématurée.J'ai utilisé des Promesses pour Facebook Auth flux
mixins/facebook.js
Profil.jsx
ritmatter a donné une bonne réponse, mais je vais vous montrer comment j'ai procédé un peu différemment. Je voulais utiliser Facebook du bouton de connexion plutôt que la mienne pour déclencher la fonction de rappel pour la vérification de l'état de connexion. Le bouton de connexion pourrait ressembler à ceci:
Le bouton a un onlogin attribut, qui le jsx analyseur ne prend pas en charge. À l'aide de données onlogin dans la réagir la mode ne fonctionnait pas, donc j'ai juste ajouté le bouton dans componentDidMount:
Tout ce qui reste à faire est de déclencher le bouton lors du montage du composant si vous voulez appeler automatiquement checkLoginState.
Je poste ma solution ici, car les réponses m'ont aidé à le mettre en œuvre, mais le a accepté de répondre à de ritmatter ne fonctionne pas sans le
déclaration de RubyFanatic de réponse.
En outre, le "onlogin" me troublait beaucoup. Il n'est tout simplement pas nécessaire à mes yeux.
Je veux le partager, car c'est un c&p, voici mon code complet contre fb api v2.8 (réaction de-bootstrap peut être des coups de pied bien sûr):
C'est la solution que j'ai utilisé pour obtenir la connexion de rappel. Vous pouvez ajouter ce code à votre Facebook bouton de connexion dans votre rendre méthode:
Dans votre code, ajoutez ces lignes:
Appel FB.De l'événement.abonnez-vous('auth.statusChange', callback_function) pendant l'initialisation du composant est important parce qu'il est fondamentalement votre connexion de rappel. Commander ici pour FB.L'événement de la documentation.
J'ai écrit une classe mixin à cette adresse.
https://github.com/genxstylez/react-oauth-mixin
Essayez d'utiliser cette bibliothèque:
https://github.com/keppelen/react-facebook-login
Fonctionne assez simple:
C'est de loin le plus propre et le plus simple, je pense que si vous voulez utiliser le bouton de FB au lieu de votre propre.
Utiliser le bouton, c'est aussi simple que cela.
Ce composant est complètement autonome, et très compostables car il ne repose pas sur une quelconque dépendance externe ni prédéfinis comportement autre que le rendu de la FB bouton de connexion.
J'ai été récemment travaillé sur Facebook Login pour un de mes projet, Alors après avoir bien que beaucoup de Stackoverflow des réponses et des messages de blog. J'ai écrit un minimilastic code à l'aide de ES6 FatArrow Expression de Fonction (à l'exclusion .bind(ce)). Espérons que ce code vous aide.
https://gist.github.com/ronit-mukherjee/3e933509643a4ab4e80452bb05c1a073
JS:
Trouver plus simple de code ci-dessous: