Pregunta

Así es como mi universidad maneja la autenticación: redirigimos al usuario a un sitio web, ingresamos su nombre de usuario y contraseña, luego nos redirigen a nosotros con el nombre de usuario y una clave de inicio de sesión ingresada en la cadena de consulta. Cuando recuperamos al usuario, llamamos a un procedimiento almacenado en la base de datos de la universidad que toma el nombre de usuario, la clave de inicio de sesión y la dirección IP y nos dice si esto es válido.

Tengo un backend de autenticación personalizado de Django configurado para manejar nuestro final de todo esto. ¿Hay alguna diferencia de una manera u otra si puedo aceptar un argumento de contraseña (ya que no estamos tomando su contraseña)? En este momento, lo tengo configurado para que tome la clave de inicio de sesión como el argumento de la contraseña. ¿Sería bueno, malo o ninguno de los dos cambiar esto para que tome esto como "login_key" en lugar de "password"?

¿Fue útil?

Solución

Los documentos de Django dicen esto:

  

De cualquier manera, autenticar debe verificar   las credenciales que recibe, y debería   devolver un objeto de usuario que coincida   esas credenciales, si las credenciales   son validos. Si no son válidos,   debe devolver ninguno.

El 'De cualquier manera' se refiere a si el método authenticate () toma una combinación de nombre de usuario / contraseña, o simplemente un token. Su escenario se encuentra entre esos dos, por lo que creo que la mejor respuesta sería escribir su authenticate () para tomar un nombre de usuario y una clave de inicio de sesión, y devolver el Usuario correcto o Ninguno según corresponda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top