Problème avec Facebook connexion ne correspond pas à CSRF état jeton
J'ai fait quelques recherches et je n'ai pas trouver quelque chose qui était lié à mon problème.
Je suis en train d'essayer de mettre en œuvre un Facebook de connexion à mon site et je vais avoir des problèmes avec l'authentification de la connexion en raison de htaccess mod de réécriture d'Url?
Le code fonctionne parfaitement et j'ai connecté si je l'utilise sans le mod de réécriture des règles comme:
domain.com/view_webhosting.php?webhosting=name
Mais dès que je vais sur le mod de réécriture d'URL
domain.com/webhosting-name/
Puis il ne fonctionne pas et renvoie une erreur "CSRF état jeton ne correspond pas à une condition."
dans le fichier htaccess, il ressemble à ceci
RewriteRule ^webhosting-([a-z_0-9-]+)/$ /view_webhosting.php?webhosting=$1 [L]
Que quelqu'un a une solution à un problème comme celui-ci? Je suis à l'aide de Facebook SDK v3.1.1
Vous devez vous connecter pour publier un commentaire.
Le SDK PHP attend de l'état de champ de $_REQUEST (je crois comme un param) après la redirection avant, vous pouvez échanger le 'code' pour un jeton d'accès. À partir de base_facebook.php:
Votre RewriteRule peut être piétinant sur ce param.
Grâce bismark.
Vous avez été correct; il n'a pas pu obtenir les paramètres GET, et la solution était:
De
à
Chaîne de requête, ajoutez [QSA]
Merci les gars, mettez-moi sur la bonne voie!
Je suppose que vous voulez dire le SDK PHP?
Dirait que vous n'êtes pas passer l'état variable request à votre script PHP. Avez-vous lu https://developers.facebook.com/docs/authentication/ (spécifiquement les bits et les protéger contre les CSRF?).
Aussi, je suppose que c'est une faute de frappe dans votre question, mais ne devrait pas vos règles de réécriture être:
Essayez de changer votre RewriteRule à
QSA = Chaîne de Requête Ajout. Cela vous garantit de ne pas perdre votre OBTENIR params.
Si quelqu'un obtient toujours ce message d'erreur après l' .fichier htaccess je vous suggère de changer le paramètre redirect_uri dans le fichier PHP ainsi que l'URL du Site à Facebook paramètres de l'application.
J'ai résolu cette erreur de changement de
http:domain.com/folder
à
http:domain.com/folder/index.php
Le Facebook SDK code a un bug lors de la vérification des jetons de deux fois dans le même gestionnaire.
J'ai édité le getCode fonction de
facebook.php
comme ceci:pour être plus clair et ne fait pas état d'une défaillance de jeton si appelé deux fois.
Pour être clair, la fonction peut être appelée deux fois sur le même gestionnaire d'URL si par exemple:
$facebook->getUser();
et puis dans le gestionnaire de même$facebook->getLogoutUrl()
puis legetCode()
est appelé deux fois, ce qui en résultent et non valide message d'erreurJ'ai corrigé cela en (oublier) de faire correspondre la portée/des autorisations à partir d'une application pour les autorisations sur le
developers.facebook.com/app
page... (c'est à dire goto paramètres de l'application, les autorisations).