web-dev-qa-db-fra.com

Connexion Facebook avec plusieurs domaines

Je sais que Facebook me permet de spécifier plusieurs domaines pour mon application .I can specify multiple App Domains

Mais dans le "Site Web avec Facebook Login", je ne peux spécifier qu'une seule URL .I can only specify one Site URL

Est-il possible pour moi d'authentifier des utilisateurs sur domain.se, domain.dk et domain.net avec la même application? Ou devrais-je toujours créer une application, pour chaque domaine?

30
mnstrflkrn

Tant que vous avez répertorié tous les App Domains souhaités dans les paramètres de l'application, vous devriez être en mesure d'authentifier les utilisateurs pour n'importe lequel d'entre eux.

"Site Web avec Facebook Login" est uniquement destiné à être utilisé comme lien vers votre site/application.

Mise à jour 2 (juillet 2016):

Les domaines d'application doivent correspondre au domaine de l'URL Secure Canvas, de l'URL du site mobile, de l'URL binaire Unity, de l'URL du site ou de l'URL de l'onglet Page sécurisée.

Mise à jour (décembre 2013):
Au moment de la rédaction de la réponse initiale, il était possible de répertorier tous les domaines dans les paramètres de l'application, mais à partir de ce moment, l'interface utilisateur des paramètres de l'application (ainsi que la manière de gérer les domaines de l'application) ont été modifiées au moins deux fois, à certains vous ne pouvez indiquer que les domaines dérivés d’une des pages de canevas de l’application.

À compter de décembre 2013, il est possible (encore) de répertorier les domaines qui ne proviennent pas de l'URL de la zone de dessin de l'application.

Application Domains Settings

9
Juicy Scripter

Il est techniquement possible d'utiliser Facebook Connect sur plusieurs domaines, il y a des limites (5 domaines maximum).

Donc, la clé pour cela est ajouter tous les domaines dans le champ Domaine de l'application sous les paramètres de votre application. 

enter image description here

Le problèmeest toutefois que Facebook ne vous permet d'ajouter que des domaines dérivés de votre URL de canevas ou d'URL de balises de sites ou de pages. Par conséquent, si vous essayez de saisir autre chose, vous obtenez une erreur qui ressemble à ceci:

enter image description here

La solutionconsiste à créer une application sur Facebook , un site Web et un onglet Facebook à l'aide du bouton AJOUTER UNE PLATEFORME , puis à insérer des URL pointant vers votre d'autres domaines. Voici un exemple de ce que je veux dire:

enter image description here

Si vous utilisez un domaine unique pour chaque champ, vous pouvez utiliser 5 domaines différents au maximum. J'ai testé cette technique avec jusqu'à 3 domaines, mais je pense que cela devrait fonctionner pour tous les 5.

Remarque: les fonctionnalités d'administration de Facebook changent de temps en temps, donc tout cela est sujet à changement

46
Metablocks Corp

La meilleure chose que j’ai trouvée à faire dans le scénario développement/production est d’ajouter une "application test", puis une plate-forme pour votre site Web de développement - vous devez indiquer où se trouve "l'URL de l'onglet" si vous l'utilisez comme une plateforme.

Facebook exige que votre "URL de page" soit en direct/accessible si vous devez demander une révision de statut ou d'autorisation.

Cela m'a amené à parler du scénario "login en développement"/"login en production".

1
Subimage

En supposant que vos domaines sont desservis par le même serveur Web et que vous ayez accès à ce serveur Web, vous pouvez utiliser la procédure de connexion manuelle: https://developers.facebook.com/docs/facebook-login/manually-build- a-login-flow pour vous connecter depuis autant de domaines que vous le souhaitez.

Supposons que vos domaines sont site1.com, site2.com .... Au lieu d'utiliser l'API javascript de Facebook, vous allez simplement placer un ancien et simple bouton de connexion avec Facebook sur chaque site, qui redirigera le navigateur vers la page de connexion à Facebook comme décrit dans l'article ci-dessus. Dans la variable d'état, vous pouvez spécifier un code qui indique lequel de vos sites demande une connexion. Dans la redirection, vous utiliserez un seul domaine de service que vous attribuez à votre serveur Web (par exemple, fb.mywebserver.com) et que vous spécifiez comme URL de redirection vérifiée dans la page des paramètres de connexion à Facebook. Tous les sites redirigeront vers cette même URL, évitant ainsi le problème de la prise en charge de plusieurs domaines. 

Une fois l’utilisateur connecté, le navigateur redirigera vers fb.mywebserver.com et lui transmettra l’état, qui vous indique le site qui demande la connexion et un code que vous pouvez utiliser à l’arrière pour récupérer les informations de l’utilisateur à l'aide de Facebook. graph apis. Vous stockez ces informations avec un uid dans votre magasin de données, puis vous les redirigez vers le site approprié, y compris un paramètre indiquant un identifiant Facebook (par exemple, site1.com?fbc={some uid}). Le navigateur appellera alors docilement site1.com?fbc ... Votre serveur Web recevra cette demande et détectera le paramètre fbc lui indiquant d'associer l'utilisateur connecté à Facebook correspondant à ce site. Il peut ensuite récupérer les informations des utilisateurs connectés à l'aide de l'ID utilisateur et, par exemple, renvoyer un cookie de session pour cet utilisateur avec la page. Si vous générez la page sur le serveur, vous pouvez bien sûr également inclure un "utilisateur" de bienvenue ou bien votre code client peut effectuer un appel ajax pour récupérer ces informations.

Du point de vue de l'utilisateur, ils appuient sur le bouton Connexion avec Facebook, sont redirigés vers une page de connexion Facebook sur laquelle ils se connectent, puis sont redirigés vers votre site dans un état connecté. Pas tout à fait aussi bien que d'avoir le popup de connexion mais probablement acceptable.

Un processus similaire peut également être utilisé pour les connexions Google.

0
smjhunt