Question

Voici comment mon université gère l'authentification: nous redirigeons l'utilisateur vers un site Web, ils entrent leur nom d'utilisateur et leur mot de passe, puis ils sont redirigés vers nous avec le nom d'utilisateur et une clé de connexion passés dans la chaîne de requête. Lorsque nous récupérons l'utilisateur, nous appelons une procédure stockée dans la base de données de l'université qui prend le nom d'utilisateur, la clé de connexion et l'adresse IP et nous indique si cette information est valide.

J'ai un backend d'authentification personnalisé Django configuré pour gérer tout cela. Est-ce que cela fait une différence d'une manière ou d'une autre si je le rends capable d'accepter un argument de mot de passe (puisque nous ne prenons pas réellement leur mot de passe)? À l'heure actuelle, je l'ai configuré pour qu'il prenne la clé de connexion comme argument de mot de passe. Serait-il bon, mauvais ou ni pour moi de changer cela en prenant ceci comme, disons, login_key au lieu de mot de passe?

Était-ce utile?

La solution

Les documents Django disent ceci:

  

Quoi qu'il en soit, l'authentification devrait vérifier   les informations d'identification qu'il obtient, et il devrait   retourne un objet utilisateur qui correspond   ces informations d'identification, si les informations d'identification   sont valides. S'ils ne sont pas valables, ça   doit renvoyer Aucun.

Le terme "Dans les deux cas" indique si la méthode authenticate () utilise une combinaison nom d'utilisateur / mot de passe ou uniquement un jeton. Votre scénario se situe entre ces deux cas, alors je pense que la meilleure solution serait d'écrire votre authenticate () pour prendre un nom d'utilisateur et une clé de connexion, et de renvoyer le bon utilisateur ou aucun selon le cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top