válido significa sesión seguro renovar que obtener inicio identificador depurador bloqueado aplicación acceso facebook oauth

significa - ¿Cómo se renueva un token de acceso de Facebook caducado?



que significa token de acceso (2)

Estoy trabajando con esta referencia e intentando implementar el protocolo OAuth para permitir a los usuarios iniciar sesión en mi sitio a través de Facebook. Sin embargo, la documentación de Facebook es bastante terrible y no está claro en algunas partes clave.

Dice que la autorización requiere tres pasos:

  1. Autenticación de usuario (redirecciona al usuario a https://facebook.com/dialog/oauth?client_id=...&redirect_uri=... , y espera que la página redirect_uri sea ​​devuelta con un code ). ¡Funciona genial!

  2. Autorización de la aplicación (manejada por Facebook, etc.). ¡Funciona genial!

  3. Autenticación de aplicación (en la página de devolución de llamada, obtenga el code que obtiene y llame a https://graph.facebook.com/oauth/access_token?client_id=...&redirect_uri=...&client_secret=...&code=... El cuerpo de la respuesta incluirá un access_token que necesitamos para hacer cosas)

Entiendo que con access_token , puedo llamar a las API y tal. Pero, ¿qué sucede cuando expira? Podría obtener uno nuevo, pero a esta altura serán muchas las solicitudes HTTP más adelante, y ya no tengo el code que solía obtener en primer lugar. ¿Tengo que guardar el code junto con access_token ? O bien, ¿tengo que decirle al usuario que vuelva a iniciar sesión para que obtenga un nuevo code y obtener un nuevo access_token ?

O, ¿me falta una parte clave aquí? No necesito un token offline_access , ya que solo voy a sondear los datos en respuesta a las acciones del usuario.


Cuando caduque access_token , el usuario será visto como "desconectado" por Facebook. Su aplicación pasará por el mismo proceso que la primera vez, pero es posible que el usuario no lo haga.

Si el usuario no ha revocado el acceso a su aplicación, y el usuario ha iniciado sesión en Facebook en ese momento, el proceso de Autorización de la aplicación se access_token solo, sin que el usuario requiera ninguna acción y recibirá una nueva access_token .

Si el usuario no ha revocado el acceso a su aplicación, pero no ha iniciado sesión en Facebook, se le presentará un inicio de sesión de Facebook en el paso Autorización de la aplicación. No se les pedirá que vuelvan a dar permiso a su aplicación, ya que Facebook sabe que su ID de la aplicación está autorizada por ese usuario.

Finalmente, si el usuario ha revocado el acceso, se le presentará la solicitud original de Autorización de la aplicación y usted seguirá el flujo original.

Básicamente, debe considerar access_token como volátil, y no molestarse en almacenarlo, sino usando access_token que recibe como parte del proceso de inicio de sesión del usuario, que ocurre todo el tiempo entre bastidores, y que solo involucra al usuario cuando cierra la sesión. Facebook o revoque el acceso a su aplicación.

Esto es diferente al OAuth de Twitter con el que puede almacenarlo y reutilizarlo.


De la documentación de Facebook vinculada a tu pregunta:

Una vez que el token caduque, deberá volver a ejecutar los pasos anteriores para generar un nuevo código y access_token, aunque si el usuario ya ha autorizado su aplicación, no se le pedirá que lo haga de nuevo.

Cuando el access_token caduque, deberá obtener uno nuevo volviendo a seguir los mismos pasos. El usuario deberá iniciar sesión de nuevo y deberá obtener un nuevo code y, a su vez, un nuevo access_token .