Estoy escribiendo una aplicación web en la que los usuarios necesitarán iniciar sesión en Facebook (un inicio de sesión en Facebook no tiene sentido en el contexto de la aplicación). Idealmente, después de su visita inicial, cuando un usuario visita /index
, mi aplicación web ve una cookie que depositó anteriormente y registra automáticamente al usuario automáticamente y va a la aplicación (/app
).Inicio de sesión en Facebook para sitios web: ¿la mejor práctica para manejar el cierre de sesión de Facebook del usuario?
Mi problema surge cuando el usuario cierra sesión en Facebook y regresa a mi aplicación. Como su cookie en mi dominio seguirá presente, y su oauth_token
seguirá siendo válido (tienen una validez de 60 días), aún puedo iniciar sesión automáticamente y la aplicación funcionará como se esperaba.
Para mí, no parece correcto que la aplicación permanezca iniciada con su cuenta de Facebook incluso cuando no hayan iniciado sesión en Facebook. Jugué en Stackoverflow; permite este comportamiento también. ¿Se han extraviado mis preocupaciones o hay una forma recomendada de ver si un usuario inició sesión en Facebook cuando solicitó por primera vez el /index
desde mi servidor?
El problema es que la cookie FBJS no se borra en mi dominio cuando se inscriban fuera de facebook. Después de cerrar sesión en Facebook y acceder a mi aplicación, mi aplicación aún ve la cookie FBJS. No puedo saber que no están realmente registrados hasta que cargue javascript. Esto agrega un redireccionamiento adicional si * están * conectados, porque deben cargar mi/página de inicio de sesión, donde js luego descubre que ya han iniciado sesión, y los redirecciona a/app –
La forma en que lo veo, cada vez su aplicación está haciendo algo en nombre del usuario que ha iniciado sesión, debe verificar si el usuario está realmente conectado en ese momento. Sea cual sea la cookie que establezca su aplicación para recordar el estado de registro de usuario de Facebook, no debe confiar en ella, o debe mantenerla sincronizada con el estado de Facebook. –
Por ejemplo, puede invocar la función FB.getLoginStatus cada vez antes de que su aplicación se publique en Facebook. Esta puede no ser la forma optimizada para hacerlo, por supuesto. –