Comparación de la autenticación y el acceso a los datos

El inicio de sesión con Facebook proporciona dos ventajas principales: autenticación y acceso a los datos. Además, estas ventajas no se excluyen mutuamente. El inicio de sesión con Facebook se puede usar para autenticar a los usuarios sin intención de acceder a sus datos. En este caso, no es necesario solicitar permisos ni someter la aplicación a la revisión de la aplicación.

La autenticación y el acceso a los datos duran un periodo limitado de tiempo. Sin embargo, los periodos de caducidad de la autenticación y el acceso a los datos son diferentes y dependen de diversos factores.

Autenticación

La autenticación permite a los usuarios iniciar sesión en una aplicación web o para móviles y crear una cuenta mediante sus credenciales de Facebook. No tienen que crear ni recordar una contraseña distinta.

Caducidad de la autenticación

Cuando una aplicación usa el inicio de sesión con Facebook para autenticar a alguien, recibe un identificador de acceso de usuario. Si la aplicación utiliza uno de los SDK de Facebook, este identificador dura aproximadamente 60 días. No obstante, los SDK actualizan automáticamente el identificador cada vez que el usuario utiliza la aplicación, por lo que el identificador caduca 60 días después del último uso. Si la aplicación no usa los SDK de Facebook, es necesario incluir un fragmento de código que actualice el identificador de usuario de forma manual. Si el identificador de acceso de usuario caduca, la aplicación debe volver a someter al usuario al proceso de inicio de sesión.

Acceso a los datos

El inicio de sesión con Facebook también permite solicitar permisos cuando los usuarios inician sesión en una aplicación. Estos permisos, si los concede el usuario, proporcionan a la aplicación acceso a elementos de los datos del usuario. Por ejemplo, la aplicación puede acceder al nombre y a la foto del perfil de un usuario.

Si una aplicación solicita permisos, suele ser necesario someterla al proceso de revisión de la aplicación para que Facebook pueda garantizar que los datos no se utilizan de manera indebida. La aplicación puede solicitar la foto y el nombre (los campos de perfil predeterminados) y el correo electrónico de los usuarios sin someterse a la revisión de la aplicación, pero la revisión es necesaria para el resto de los permisos. Para obtener las listas de permisos y saber cuáles requieren la revisión de la aplicación, consulta la referencia de permisos.

Caducidad del acceso a los datos

El periodo de caducidad del acceso a los datos es de 90 días y depende de cuándo el usuario estuvo activo por última vez. Cuando este periodo de 90 días caduca, el usuario puede seguir accediendo a la aplicación (es decir, sigue estando autenticado), pero la aplicación no puede acceder a sus datos. Para volver a obtener acceso, la aplicación debe solicitar al usuario que vuelva a autorizar los permisos de la aplicación.

Para solicitar que los vuelva a autorizar con el SDK de Facebook para Android o el SDK de Facebook para iOS, se debe llamar a reauthorizeDataAccess() en LoginManager.

Con el SDK de Facebook para JavaScript, se debe usar auth_type: 'reauthorize'.

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

En el caso de la web, la llamada se debe realizar con auth_type=reauthorize.

Los permisos siguientes no caducan:

  • 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 la caducidad del acceso a los datos del usuario

Con los SDK para Android y iOS, se puede recuperar la fecha de caducidad del acceso de una aplicación a los datos de un usuario mediante una llamada a dataAccessExpirationTime en el objeto del identificador de acceso. Este método devuelve una fecha que especifica cuándo caducará el acceso a los datos.

También se puede probar si el acceso a los datos del usuario ha caducado mediante una llamada a isDataAccessExpired, que devuelve un valor booleano.

En el servidor, esta información se puede recuperar del extremo debug_token.

En la web, la fecha de caducidad se puede ver en payload: data_access_expiration_time.

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

Caducidad de los permisos

Independientemente de la última vez en que el usuario estuvo activo, el permiso puede caducar si la aplicación no lo utiliza durante 90 días. Esto se aplica aunque el permiso se haya aprobado mediante la revisión de la aplicación.