zestedesavoir/zds-site — pull request #1424 by firm1 (2014-09-02 22:23:56+00:00)
Title: Intégration des comptes réseaux sociaux

| Q | R
| ------------------------- | -------------------------------------------
| Correction de bugs ? | non
| Nouvelle Fonctionnalité ? | oui
| Tickets concernés | #381

HS : une PR plus longue a rédiger que de taper le code \o/

Cette PR intègre au site la connexion via les réseaux sociaux **Facebook**, **Twitter**, et **Google**.

Le principe est assez simple. Un utilisateur qui veut s'inscrire ou se loguer sur le site, a désormais 4 possibilité
- saisir son login, mail et mot de passe
- utiliser son compte facebook
- utiliser son compte googleplus
- utiliser son compte twitter.

Par défaut lorsque l'on s'inscrit via un compte réseau social, le compte est crée dans la base des utilisateurs de zds. Et on est directement connecté avec ce nouveau compte. On peut changer par la suite notre pseudo et toutes les autres informations de profil.

Les authentifications sont faites directement via les API Oauth2 d'authentifications, donc tout est sécurisé.

**Note pour QA**
Cette PR est assez complexe a tester, mais ça vaut le coup je pense. Etant donné que je ne peux pas renseigner les clés des applications sociales des vrais comptes du site, la QA va bosser un peu. Il faut donc après avoir crée un fichier vide dans `zds-site/zds/settings_prod.py`.

1. Sur un compte **facebook** :
- allez sur https://developers.facebook.com/apps/?action=create et cliquer sur "Create New App" en vert
- Dans les paramètre de l'application crée cliquez sur “Add Platform”. Dans les options fournies, choisissez Web, et remplissez l'url du site avec "http://127.0.0.1:8000" (adaptez l'ip en fonction de l'adresse sur laquelle vous testez zds en local)
- dans votre fichier `settings_prod.py` rajouter les variables `SOCIAL_AUTH_FACEBOOK_KEY = "clé"`
et `SOCIAL_AUTH_FACEBOOK_SECRET = "secret"` obtenu via l'application facebook

2. Sur un compte **twitter** :
- allez sur https://apps.twitter.com/app/new et creez une nouvelle application
- remplissez les informations, et dans votre url de callback pensez à renseigner `http://127.0.0.1:8000/complete/twitter/` (adaptez l'ip en fonction de l'adresse sur laquelle vous testez zds en local)
- dans votre fichier `settings_prod.py` rajouter les variables `SOCIAL_AUTH_TWITTER_KEY = "clé"`
et `SOCIAL_AUTH_TWITTER_SECRET = "secret"` obtenu via l'application twitter

3. Sur un compte **google plus** :
- allez sur https://console.developers.google.com/ et creez une nouvelle application
- remplissez les informations, et dans votre url de callback pensez à renseigner `http://127.0.0.1:8000/complete/google-oauth2/` (adaptez l'ip en fonction de l'adresse sur laquelle vous testez zds en local)
- dans votre fichier `settings_prod.py` rajouter les variables `SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = "clé"` et `SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = "secret"` obtenu via l'application google

Après ce paramétrage, essayez de vous connecter via chaque compte, et jouez avec.

Je laisse un screen du rendu.

![capture d ecran de 2014-09-02 23 49 09](https://cloud.githubusercontent.com/assets/6066015/4126764/699186da-32ef-11e4-859c-61c84f5f2a12.png)
![capture d ecran de 2014-09-02 23 48 51](https://cloud.githubusercontent.com/assets/6066015/4126769/793cf254-32ef-11e4-8edd-b3d4ad708696.png)