2010-02-01 7 views
0

J'ai un site basé sur un jeu qui a des comptes de connexion que je veux intégrer dans facebook (pas de connexion facebook, je veux utiliser une page de toile iframe).Comment faire un site web qui fonctionne comme un site web et une application facebook?

Ma question est comment puis-je authentifier un utilisateur et comment puis-je vérifier si un utilisateur vient de facebook ou directement du site.

J'ai joué avec require_login() en utilisant la bibliothèque PHP. Ma principale crainte est de savoir comment je peux authentifier que les paramètres GET de facebook sont en effet de facebook? Si je peux le faire, je peux stocker leur ID de session facebook et Uid dans une session en tant qu'identifications de connexion.

Mon autre souci est que la variable GET peut être passée en tant que reffer à un lien externe.

Enfin ... Je trouve dans certains navigateurs qu'avec require_login() qu'il sort de l'iframe et obtient un look éternel en ajoutant continuellement des authtoken supplémentaires à l'URL. quelqu'un

Hope peut aider

Répondre

0

Oui, vous pouvez créer une application qui fonctionne de manière indépendante, ainsi que l'application facebook. Pour le facebook, vous devrez utiliser le facebook iframe method pour travailler sous Facebook.

+0

Je me suis rendu compte que ... Je suis déjà arrivé à ce point, je suis plus intéressé par le côté authentification des choses, mais merci – Mark

+0

Désolé je n'ai pas vu le lien ... Je vais lire – Mark

+0

@Mark : pas mec problème, merci :) – Sarfraz

0

Vous pouvez vérifier que la demande provient de Facebook par verifying the signature de la même manière que Facebook vérifie que les demandes d'API proviennent de votre application. Avec la bibliothèque cliente PHP, vous pouvez utiliser la méthode validate_fb_params() de la classe Facebook pour le faire automatiquement. Gardez à l'esprit que les clés de session sont temporaires. L'utilisateur devra donc s'authentifier auprès de Facebook via votre application, sinon la clé expirera dans l'heure. Vous pouvez également rencontrer un problème de cookie d'une tierce partie avec Safari si vous souhaitez stocker la clé de session dans un cookie, et vous aurez également besoin d'une confidentialité compacte pour d'autres combinaisons navigateur/paramètres de confidentialité. Quelque chose comme:

<?php 
header('P3P: CP="CAO PSA OUR"'); 
?> 

dans un include le ferait.

Et oui: la clé de session peut être transmise à des sites externes comme dans les propriétés referrer. C'est juste l'un des défauts de sécurité que la plate-forme a actuellement. La seule solution consiste à rediriger tous les clics externes via un gestionnaire qui supprime le référent ou rediriger le chargement de la page pour supprimer le paramètre fb_sig_ss.

+0

Cela ressemble à une bonne alternative à la question des cookies tiers http://www.foobots.net/breakouts.html – Mark

Questions connexes