2012-03-07 10 views
0

Ok, j'ai déjà une application Web existante. L'extrémité arrière est une interface de repos. Initialement, pour se connecter, l'utilisateur devait s'inscrire et se connecter avec ses informations d'identification. Mais je veux intégrer le login facebook;Intégrer facebook connect sur mon site

donc dans mon interface reste, je suis d'ajouter deux autres méthodes

  1. registerfbUser: enregistre le compte utilisateur

  2. loginfbUser: permet à un utilisateur d'utiliser son compte Facebook pour vous connecter dans le système après
    s'enregistré

Je suis en mesure de u se facebook se connecter et le graphique api pour se connecter à facebook. Maintenant, le loginfbUser sera appelé en utilisant ajax et les détails seront fournis au format JSON.

Mon problème est que quelles informations dois-je passer à la méthode loginfbUser pour authentifier l'utilisateur facebook. Je ne peux pas passer seulement l'identifiant facebook, parce que l'API sera ouverte et que tout le monde pourra faire une requête POST avec l'identifiant facebook au format json

+0

Voulez-vous autoriser les utilisateurs à se connecter à l'ancienne façon? Les nouveaux utilisateurs auront-ils le choix de se connecter de la manière nouvelle ou ancienne? –

+0

oui bien sûr, les deux façons – Noor

Répondre

1

AFAIK, le but de Facebook Connect est de permettre aux développeurs web de arrêter de s'inquiéter des noms d'utilisateur/mots de passe. Je crois que l'idée est de stocker l'identifiant Facebook dans la base de données des utilisateurs et d'utiliser l'API graphique pour voir si cet utilisateur est actuellement connecté sur Facebook ou non. De cette façon, votre site authentifie l'utilisateur via sa présence sur Facebook.

1

En supposant que vous utilisez le SDK JS et le SDK PHP, une fonction qui effectue une action qui requiert une authentification FB devrait commencer comme ceci:

$this->_facebook = new Facebook(array(
    'appId' => $this->app_id, 
    'secret' => $this->app_secret, 
    'fileUpload' => true, 
    'cookie' => true 
)); 

try { 
    $this->_fb_userid = $this->_facebook->getUser(); 
} catch (FacebookApiException $e) { 
    // the user is not authenticated! 
    return; 
} 

try { 
    $this->_fb_me = $this->_facebook->api('/me'); 
} catch (FacebookApiException $e) { 
    // API call didn't work, show error... 
    return; 
} 

Si votre utilisateur authentifie via javascript, le SDK PHP sera automatiquement connaître l'utilisateur connecté. Le SDK JS envoie ces informations via un cookie à votre serveur et le SDK PHP le lit automatiquement.

2

Chez nous, nous utilisons largement l'authentification FB via AJAX pour "connecter" les utilisateurs. La façon dont nous le faisons est simple. Après que l'utilisateur se connecte ou s'authentifie via le JS SDK de FB sur la page, nous envoyons le jeton d'accès à notre serveur dans un appel AJAX. Ce jeton d'accès est ensuite vérifié par notre serveur en envoyant un appel/api à graph.facebook.com et en récupérant l'identifiant FB à partir de là. En faisant cela, nous sommes SÛRS que c'est cette personne et cette personne seulement. Une fois cela fait, nous stockons cette information (le jeton d'accès et l'identifiant facebook de l'utilisateur) est une session côté serveur et par conséquent tous les futurs appels dans cette même session reconnaîtront l'utilisateur correctement. Si votre point de départ est un onglet App FB ou une application de zone de dessin, le jeton d'accès et le fbId sont envoyés par facebook dans une requête signée que vous pouvez "annuler" et utiliser pour stocker dans la session et éviter de devoir faire cet appel à graph.facebook.com (qui peut être un peu lent et former un goulot d'étranglement performance/UX)

Questions connexes