Facebook Login présente deux avantages majeurs : l’authentification et l’accès aux données. Ces avantages ne s’excluent pas mutuellement. Vous pouvez utiliser Facebook Login pour authentifier les utilisateurs ou utilisatrices sans prévoir d’accéder à leurs données. Dans ce cas, vous n’avez pas besoin de demander des autorisations ni de passer le Contrôle app.
L’authentification et l’accès aux données ont une durée limitée. Cependant, les délais d’expiration qui leur sont associés diffèrent et dépendent de différents facteurs.
L’authentification permet aux utilisateurs et utilisatrices de se connecter à votre application mobile ou web, et de créer un compte à l’aide de leurs identifiants Facebook. Ils n’ont pas besoin de créer ni de mémoriser un mot de passe distinct.
Lorsque votre application authentifie un utilisateur ou une utilisatrice via Facebook Login, elle reçoit un token d’accès utilisateur. Si elle utilise l’un des SDK Facebook, ce token a une durée d’environ 60 jours. Toutefois, les SDK actualisent automatiquement le token dès que l’utilisateur ou l’utilisatrice se sert de votre application, de sorte que les tokens expirent 60 jours après la dernière utilisation. Si votre application n’utilise pas les SDK Facebook, vous devez inclure un code pour actualiser manuellement le token d’accès utilisateur. Si le token d’accès est arrivé à expiration, votre application doit à nouveau orienter l’utilisateur ou l’utilisatrice vers le processus de connexion.
Facebook Login vous permet également de demander des autorisations lorsque les utilisateurs et les utilisatrices se connectent à votre application. Celles-ci, si elles sont accordées par l’utilisateur ou l’utilisatrice, autorise votre application à accéder à certaines de ses données. Par exemple, votre application peut accéder au nom d’un utilisateur ou d’une utilisatrice et à sa photo de profil.
Si une application doit demander des autorisations, elle doit généralement passer le Contrôle app afin que Facebook puisse s’assurer que les données ne seront pas utilisées de manière détournée. Votre application peut demander le nom et la photo d’utilisateurs ou d’utilisatrices (les champs de profil par défaut) ainsi que l’adresse e-mail sans avoir à passer le Contrôle app. Ce dernier est toutefois requis pour toutes les autres autorisations. Pour obtenir la liste des autorisations et savoir lesquelles requièrent le Contrôle app, reportez-vous aux documents de référence relatifs aux autorisations.
Le délai d’expiration associé à l’accès aux données est de 90 jours, selon la date de dernière activité de l’utilisateur ou de l’utilisatrice. Lorsque ce délai de 90 jours expire, l’utilisateur ou l’utilisatrice peut toujours accéder à votre application (autrement dit, il ou elle est toujours authentifié·e), mais votre application n’a plus accès à ses données. Pour pouvoir y accéder de nouveau, votre application a une nouvelle fois besoin des autorisations de l’utilisateur ou de l’utilisatrice.
Pour demander une nouvelle autorisation avec le SDK Facebook pour Android ou pour iOS, appelez reauthorizeDataAccess()
sur le LoginManager
.
Avec Facebook SDK for JavaScript, utilisez auth_type: 'reauthorize'
.
FB.login(function(response) { // Original FB.login code }, { auth_type: 'reauthorize' })
Pour le web, effectuez l’appel avec auth_type=reauthorize
.
Les autorisations suivantes ne sont associées à aucun délai d’expiration :
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
Avec les SDK Facebook pour Android et iOS, vous pouvez savoir à quel moment l’accès de votre application aux données utilisateur va expirer en appelant dataAccessExpirationTime
sur l’objet de token d’accès. Cette méthode renvoie la date à laquelle l’accès aux données va expirer.
Vous pouvez également vérifier si l’accès à ces données a expiré en appelant isDataAccessExpired
. Cette opération affiche une valeur booléenne.
Sur le serveur, vous pouvez récupérer cette information depuis le point de terminaison debug_token
.
Sur le web, la date d’expiration est disponible dans payload: data_access_expiration_time
.
{ status: 'connected', authResponse: { accessToken: '...', expiresIn:'...', reauthorize_required_in:'...', data_access_expiration_time: '...', signedRequest:'...', userID:'...' } }
Quelle que soit la date de la dernière activité de l’utilisateur ou de l’utilisatrice, l’autorisation arrive à expiration si votre application ne s’en sert pas pendant 90 jours. Il en va ainsi même si l’autorisation a été approuvée par le biais du Contrôle app.