Cómo funciona el cierre de sesión en Facebook SDK Android
Estoy un poco confundido acerca de cómo funciona facebook.logout (contexto).
Porque incluso después de llamar a cerrar sesión, puedo obtener acceso a información que requiere un auth_token. Entonces, ¿cómo es eso posible? Me encontré con este tema, que me dejó un poco confundido: https://stackoverflow.com/a/6597688/487940
- Ejemplos de FacebookSDK Ejemplo no funciona en el teléfono Android
- StatusCallback no se llama después de requestNewReadPermissions entonces requestNewPublishPermissions
- ¿Cómo manejar los errores de la API en la aplicación de Android usando Facebook 3.0 SDK?
- Obtener el permiso de publish_action después de obtener permisos de lectura de Facebook
- ¿Cuándo solicitar permisos con el nuevo Android SDK 3.0 de Facebook?
Después de leer esa respuesta, esta es mi pregunta: así que si el usuario concede acceso a [mi] aplicación, siempre será autenticado si está conectado a la aplicación [official] facebook. Incluso si intento llamar a facebook.logout (contexto) en [mi] aplicación, él se conectará y mi aplicación podrá hacer llamadas a Facebook API? '
Lo siento, no puedo entender este comportamiento.
ACTUALIZACIÓN: Después de leer la respuesta de Torid, estoy confundido acerca de la función facebook.logout (). ¿Cuál es el propósito de esta función si no registra al usuario? Porque, no veo el propósito de llamar a este propósito más. No registra el usuario.
- Autenticación personalizada en Google Cloud Mobile Backend Starter en Android
- Java.lang.RuntimeException: Error al entregar el resultado ResultInfo mientras se registra usando Facebook
- Iniciar sesión con permiso adicional con Facebook SDK 3 para Android
- FirebaseUI autenticación con Facebook no funciona
- La aplicación se bloquea después del primer inicio de sesión en Facebook
- Autenticación de Facebook en Android Redirección a Facebook Aplicación para Android
Hay dos cosas independientes sucediendo aquí: 1) si su usuario ha autenticado su aplicación (con permisos) a Facebook y 2) si su usuario está conectado a Facebook.
La autenticación se requiere la primera vez que el usuario usa la aplicación y dura hasta que el usuario se desautorea de forma explícita (por ejemplo, a través de la configuración de la cuenta web de Facebook -> Aplicaciones -> Configuración de la aplicación).
El inicio de sesión puede ser necesario cada vez que el usuario inicie su aplicación. Pero si utiliza el SDK predeterminado authorize (), que intenta hacer un Single Sign On (SSO), donde si la aplicación de Facebook está conectada, su aplicación se inicia sesión automáticamente y utiliza el token de acceso existente.
Si estás usando SSO, cuando haces un logout, eso no tiene ningún efecto, ya que un logout real tendría que cerrar la sesión en la aplicación de Facebook, que quizá el usuario no quiera.
Puede evitar este comportamiento haciendo una autorización del formulario
authorize(this, PERMISSIONS, FORCE_DIALOG_AUTH, new LoginDialogListener());
Que evita SSO y fuerza un inicio de sesión de diálogo. Por supuesto, eso obliga a su usuario a iniciar sesión cada vez que inicie su aplicación, a menos que guarde los datos de acceso / token de acceso bajo las cubiertas (que es lo que hace el SDK, consulte la fuente).