Estoy usando la función getLoginUrl() de PHP SDK que funciona perfectamente para iniciar sesión en el usuario. Una vez que el usuario es redirigido a mi página, la URL puede venir en dos formas: ver en el siguiente enlace subsección 3: http://developers.facebook.com/docs/authentication/server-side/Facebook PHP SDK - getLoginUrl() - valor de estado
Parte de la URL de retorno es a? state = value. Se supone que este valor se utiliza para evitar el Cross Site Request Falsificación: http://developers.facebook.com/docs/reference/dialogs/oauth/
Sin embargo, utilizando el método getLoginUrl() nunca puede establecer un valor de estado ya que no es uno de los parámetros: http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/
Entonces, ¿cómo ¿Puedo utilizar el valor de estado para registrar a un usuario en Facebook y prevenir CSRF?
Me he estado preguntando esto también. Algo que estoy haciendo ahora es algo así: (estoy seguro de que hay una forma mejor y más correcta) '$ loginUrl = $ facebook-> getLoginUrl (array ('scope' => 'email', 'redirect_uri' => FACEBOOK_REDIRECT_URL)); $ _SESSION ['state'] = $ _SESSION ['fb _'. FACEBOOK_APP_ID .'_ state ']; '. Luego, al autenticarse después de la redirección a su sitio: 'if ($ _ SESSION ['state'] == $ _REQUEST ['state']) {// not CSRF}' – uguMark