-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Amélioration de la connexion via les réseaux sociaux #6429
Conversation
9647946
to
887def3
Compare
Hmmm, je ne comprends pas tout au premier point...
|
Je viens de relire et effectivement ce n'était pas très clair, j'ai probablement écrit ces paragraphes dans un état de fatigue avancé ! J'ai réécrit quelques morceaux pour que cela soit mieux compréhensible (enfin j'espère).
Si si, le premier point est commité. Il y a un commit par point ! J'attends surtout un retour sur le premier point car je ne suis pas sûr que ce que je propose soit souhaitable en fait.
Oups, il s'agit en effet du nettoyage du pseudo et non pas du mot de passe.
Il n'y a pas de restriction sur les espaces dans les pseudos lors d'une modification de pseudo ou d'une inscription classique, mais il y a en a une de facto pour l'inscription via les réseaux sociaux. Dans son état actuel, le premier commit enlèverai cette restriction pour l'inscription via les réseaux sociaux. Au début je pensais que c'était une bonne idée mais je ne suis finalement pas sûr, car pour les comptes Facebook les pseudos sont créés à partir du nom du compte. On peut donc penser qu'une grande proportion de ces pseudos contiendront des espaces. Et la conséquence que j'imagine c'est que ça augmenterait le nombre de fois où on doit utiliser
Même réponse qu'au-dessus. |
À mon avis, on devrait partir sur les mêmes restrictions que quand on s'inscrit sans passer par Facebook. Autrement dit, la suggestion de Philippe de reprendre les validations en place actuellement, avec utf8mb4. Pour les nombreux pseudos avec espaces, je n'ai pas de craintes particulières. Le ping est une fonctionnalité non-centrale pour l'usage du site. Ensuite, on a fait le choix d'avoir un raccourci pour le ping qui ne fonctionne pas dans 100% des cas et la syntaxe qui marche à tous les coups se fait oublier. Faut vivre avec ! :D |
58510de
to
ea0fdfe
Compare
Nouvel élan de motivation donc j'ai mis à jour cette PR ! J'ai suivi vos retours et j'ai implémenté les même filtres pour les comptes créés à partir des réseaux sociaux que pour ceux créés de façon classique : pas de virgule, pas de barre oblique et pas de caractères utf8mb4. Pour ce dernier point, pas sûr que ce soit nécessaire car les réseaux sociaux ne doivent pas l'autoriser je suppose, mais ça ne mange pas de pain. J'ai du créer une fonction à part de la fonction existante car la bibliothèque attend une fonction qui nettoie le pseudo et non pas une fonction qui lève une exception. Si cela vous semble bon, alors on peut tester la PR sur la bêta. |
Je viens de déployer sur la bêta, je te laisse tester @Situphen avec le compte Facebook de test (je pense que ça va aussi être l'occasion de faire un tour dans les réglages de Facebook pour utiliser leur API). |
Amélioration de la connexion via les réseaux sociaux en deux points.
Fixes #6274
(On n'enlève plus les lettres accentuées des pseudos)
Lors de la première connexion depuis un réseau social et donc de la création du membre en base de données, une fonction de nettoyage des pseudos est appliquée par notre dépendance
social-auth-app-django
. Celle-ci consiste en l'application de deux expressions régulières ci-dessous et a notamment pour conséquence la suppression des lettres accentuées et des espaces.Heureusement, j'ai remarqué qu'il est possible de remplacer cette fonction par une autre fonction. Il faut alors définir la variable
SOCIAL_AUTH_CLEAN_USERNAME_FUNCTION
avec le chemin vers cette nouvelle fonction. La fonction de nettoyage des pseudos que je propose supprime les virgules et les barres obliques comme c'est le cas dans le modulemember
(cf. ce bout de code), mais ne remplace pas les caractères utf8mb4.J'ai besoin d'un avis sur ce changement. Sur la fonctionnalité en elle-même, je pense que garder les lettres accentuées est une bonne chose mais je ne sais pas si garder les espaces est souhaitable, notamment car ça complique le ping dans les messages. Sur l'implémentation, est-ce que j'oublie quelque chose ? Normalement, on ne devrait pas avoir de soucis avec les comptes Google car les pseudos sont créés à partir de l'adresse de courriel, mais avec les comptes Facebook il doit être possible d'avoir des caractères assez exotiques.
(On récupère l'adresse de courriel des comptes Facebook)
Figurez-vous que demander le scope de suffit pas et qu'il faut explicitement demander à récupérer ce champ à l'aide de la variable
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS
. Malheureusement, il me semble que ce n'est pas rétroactif donc seuls les nouveaux comptes en bénéficieront.QA : Vérifier le bon fonctionnement de la connexion via les réseaux sociaux, notamment Facebook. (Cela se fera directement sur la bêta.)