Espero que pueda ayudarme a encontrar la mejor forma de implementar un inicio de sesión manual (iniciado en el servidor) sin usando la contraseña. Voy a explicar el flujo de trabajo: RegistrosIniciar sesión manualmente en un usuario sin contraseña
- usuario
- Gracias! Un correo electrónico con un enlace de activación ha sido enviado blablabla
- (Cuenta ahora existe pero no está marcado activado)
- usuario abre el correo electrónico, hace clic en enlace
- (cuenta está habilitada)
- Gracias! Ahora puede usar el sitio
Lo que trato de hacer es iniciar sesión en el usuario después de haber hecho clic en el enlace del correo electrónico para que pueda comenzar a utilizar el sitio web de inmediato.
No puedo usar su contraseña porque está encriptada en la base de datos, ¿es la única opción que escribe un back-end de autenticación personalizado?
Gracias; los documentos están de acuerdo, pero también está esta advertencia: "Realizando una llamada a authenticate() primero Cuando ingresa manualmente a un usuario, debe llamar a authenticate() antes de llamar a login().authenticate() establece un atributo en el usuario que indica qué servidor de autenticación autenticó correctamente a ese usuario (consulte la documentación de los back-end para obtener más información) y esta información se necesita más adelante durante el proceso de inicio de sesión. " ¿Podría ser un problema? – Agos
Ver mi actualización arriba . –
Aunque es mejor importar configuraciones de django.contrib.conf y asignar configuraciones.AUTHENTICATION_BACKENDS en caso de que el uso tenga un back-end personalizado. – Arsham