Bonjour à tous,
J’aurais besoin de quelques conseils pour connecter des utilisateurs à un site web distant en utilisant leurs identifiants Discourse existants (nom d’utilisateur et mot de passe).
Je ne pense pas avoir besoin de SSO… voici pourquoi.
Tout d’abord, un peu de contexte sur mon cas d’usage actuel et pourquoi je n’aime pas cette approche.
J’ai actuellement un site web à l’adresse https://www.example.com qui dispose d’un bouton de connexion.
Lorsqu’un utilisateur clique sur ce bouton, on lui demande de saisir son nom d’utilisateur et son adresse e-mail existants sur Discourse (note : nom d’utilisateur + e-mail, PAS de mot de passe).
Je prends ensuite ces deux éléments et j’envoie une requête API GET vers :
"https://mydiscourse.comm/admin/users/list/all.json?email=" + strEmail
Dans les en-têtes de cet appel API, j’inclus le nom du compte utilisateur « system » ainsi que la clé API associée à cet utilisateur.
Si une correspondance d’adresse e-mail est trouvée, je compare le nom d’utilisateur fourni dans mon formulaire avec celui retourné dans la réponse API pour cet e-mail.
S’il y a correspondance, je considère alors que cet utilisateur est connecté sur mon site https://www.example.com.
J’ai mis en place cette solution il y a trois ou quatre ans et elle fonctionne toujours parfaitement aujourd’hui.
Mais…
-
C’est très confus pour un utilisateur de devoir saisir une combinaison nom d’utilisateur + adresse e-mail dans un formulaire de connexion
– La plupart des gens s’attendent toujours à saisir un nom d’utilisateur + mot de passe
– Malgré des instructions détaillées partout sur mon formulaire, les gens se trompent encore naturellement -
Ce n’est pas sécurisé
– Il suffit de connaître le nom d’utilisateur et l’adresse e-mail pour, armé de ces deux informations (triviales), se connecter à https://www.example.com « en tant qu’eux » sans grande difficulté
Ce que je souhaiterais faire, c’est permettre à l’utilisateur de cliquer sur le bouton de connexion de https://www.example.com et de saisir son nom d’utilisateur et son mot de passe Discourse existants (au lieu de nom d’utilisateur + e-mail !).
Mon site web example.com lancerait alors une requête API rapide vers mon instance Discourse, confirmerait que la combinaison nom d’utilisateur + mot de passe fournie est correcte et renverrait l’ID de l’utilisateur Discourse correspondant.
J’espère que cela a du sens ![]()
J’ai parcouru toute la documentation de l’API et, pour tout vous dire, je n’arrive pas à trouver un point de terminaison « login » simple ? ![]()
Je n’ai pas besoin ni ne souhaite connecter ou déconnecter les gens de mon instance Discourse elle-même ; je veux simplement vérifier que leur nom d’utilisateur et leur mot de passe sont corrects.
Toute indication, conseil, lien ou recommandation serait grandement apprécié ![]()