# Facebook

Authentification | Utilisateurs | Mot-de-passe
--- | --- | ---
✔ | ✔ |

## Présentation

Facebook est un célèbre réseau social. Facebook utilise le protocole OAuth2 pour autoriser les applications à réutiliser son propre prcessus d'authentification (ce qui signifie que si on est connecté à Facebook, d'autres applications peuvent agréer Facebook et accepter l'utilisateur).

La paquet Net::Facebook::Oauth2 est nécessaire.

Il faut enregistrer la nouvelle application dans Facebook pour obtenir un identifiant d'application et un secret. Voir https://developers.facebook.com/apps pour en savoir plus.

## Configuration

Dans le manager, allez dans `Paramètres generaux` > `Modules d'authentification` et choisissez Facebook comme module d'authentication. On peut également utiliser Facebook comme base de données utilisateurs.

Ensuite, aller dans les `paramètres Facebook`:

- Niveau d'authentification : niveau d'authentification accordé à ce module.
- ID de l'application Facebook : l'identifiant d'application obtenu
- Secret de l'application Facebook : le secret correspondant

If you use Facebook as user database, declare values in exported variables:

- utiliser n'importe quel nom de clef. Pour imposer qu'une valeur soit renseignée, ajouter un ”!” devant le nom de clef
- dans le champ valeur, mettre le nom du champ. You can show them using Facebook Graph API explorer and have a list of supported fields in the Graph API User reference. Par exemple :
  - cn ⇒ name
  - mail ⇒ email
  - sn ⇒ last_name

Do not query `id` field in exported variables, as it is already registered by the authentication module in `$_user`.
On peut réutiliser le même ticket d'accès Facebook dans les applications. It is stored in session datas under the name `$_facebookToken`