Autenticación y acceso de datos

El inicio de sesión con Facebook proporciona dos beneficios principales: autenticación y acceso de datos. No son mutuamente excluyentes. Puedes usar el inicio de sesión con Facebook para autenticar a las personas sin planear acceder a sus datos. En ese caso, no necesitas solicitar permisos ni someter tu app al proceso de revisión de apps.

La autenticación y el acceso a los datos duran un período determinado. Sin embargo, los períodos de vencimiento de la autenticación y el acceso de datos varían y dependen de diferentes factores.

Autenticación

La autenticación permite a las personas iniciar sesión en tu app para celulares o en tu app web y crear una cuenta con sus credenciales de Facebook. No necesitan crear ni recordar otra contraseña diferente.

Vencimiento de la autenticación

Cuando tu app usa el inicio de sesión con Facebook para autenticar a un usuario, recibe un token de acceso de usuario. Si tu app usa uno de los SDK de Facebook, este token dura aproximadamente 60 días. Sin embargo, los SDK actualizan el token de forma automática cada vez que la persona usa tu app, de modo que los tokens se vencen 60 días después del último uso. Si tu app no usa los SDK de Facebook, debes incluir un código que actualice el token de usuario manualmente. Si el token de usuario se vence, tu app debe forzar de nuevo el proceso de inicio de sesión del usuario.

Acceso de datos

El inicio de sesión con Facebook te permite solicitar permisos cuando las personas inician sesión en tu app. Estos permisos, si el usuario los concedió, brindan a tu app acceso a los elementos de los datos del usuario. Por ejemplo, tu app puede acceder al nombre y la foto de perfil de un usuario.

Si una app solicita permisos, a menudo es necesario colocar la app en el proceso de revisión de apps para que Facebook pueda asegurarse de que los datos no se usen de forma indebida. Tu app puede solicitar el nombre y la foto de las personas (los campos del perfil predeterminados) y el correo electrónico sin pasar por el proceso de revisión de apps. Sin embargo, este proceso es necesario para el resto de los permisos. Para conocer las listas de permisos y cuáles requieren el proceso de revisión de apps, consulta la referencia sobre permisos.

Vencimiento del acceso de datos

El período de vencimiento del acceso de datos es de 90 días a partir de la última vez que el usuario estuvo activo. Cuando se vence este período de 90 días, el usuario aún puede acceder a tu app, es decir, todavía está autenticado, pero tu app no puede acceder a sus datos. Para recuperar el acceso a los datos, tu app debe solicitarle al usuario que vuelva a autorizar los permisos de tu app.

Para volver a solicitar la autorización con el SDK de Facebook para Android o el SDK de Facebook para iOS, llama a reauthorizeDataAccess() en LoginManager.

Con el SDK de Facebook para JavaScript, usa auth_type: 'reauthorize'.

FB.login(function(response) {
  // Original FB.login code
}, { auth_type: 'reauthorize' })

En la web, haz una llamada con auth_type=reauthorize.

Los siguientes permisos no se vencen:

  • ads_read
  • ads_management
  • business_management
  • configure_page_transactions
  • pages_manage_ads
  • pages_manage_cta
  • pages_manage_instant_articles

  • pages_manage_engagement

  • pages_manage_metadata
  • pages_manage_posts
  • pages_messaging
  • pages_read_engagement
  • pages_read_user_content
  • pages_show_list
  • read_audience_network_insights
  • read_insights

Pruebas de vencimiento de acceso a los datos el usuario

Con los SDK de iOS y Android, cuando el acceso de tu app a los datos del usuario se vence, puedes recuperarlos llamando a dataAccessExpirationTime en el objeto del token de acceso. Este método devuelve una fecha que especifica cuándo se vencerá el acceso a los datos.

También puedes hacer una prueba para saber si el acceso a los datos del usuario se venció llamando a isDataAccessExpired, que devuelve un valor booleano.

En el servidor, puedes recuperar esta información desde el punto de conexión debug_token.

En la web, puedes ver la hora de vencimiento en payload: data_access_expiration_time.

{
  status: 'connected',
  authResponse: {
    accessToken: '...',
    expiresIn:'...',
    reauthorize_required_in:'...',
    data_access_expiration_time: '...',
    signedRequest:'...',
    userID:'...'
  }
}

Vencimiento del permiso

Independientemente de la última vez que el usuario estuvo activo, si tu app no usa un permiso durante 90 días, es posible que dicho permiso venza. Esto sucede incluso si el permiso se aprobó por medio de la revisión de apps.