как мне вручную аутентифицировать и войти в систему пользователя в django? - PullRequest
0 голосов
/ 21 июня 2020
    if request.method=='POST':
        try:        
            email=request.POST['email']
            password = request.POST['password']
            if StudentUser.objects.filter(email=email).exists():
                user = StudentUser.objects.get(email=email)
                if user.check_password(password):
                    user = auth.authenticate(email=email)
                    if user is not None:
                        auth.login(request,user)
                        messages.success(request,'Successfully Loggedin')
                        return redirect('/')
                else:
                    messages.warning(request,'Password does not match')
                    return redirect('login')
            else:
                messages.error(request,'No Account registered with this mail')
                return redirect('login')
        except Exception as problem:
            messages.error(request,problem)
            return redirect('login')
    return render(request,'login.html')

Этот код выше. Я пытаюсь аутентифицировать пользователя вручную, но он не работает. Я хочу аутентифицировать пользователя, вручную проверив пароль. Как я могу это сделать?

** когда я передаю пароль в функции auth.authenticate, он показывает, что пароль не соответствует ошибке

1 Ответ

0 голосов
/ 21 июня 2020

Вы должны передать пароль в качестве аргумента для метода аутентификации

From docs

user = authenticate(username='john', password='secret')

Используйте Authenticate () для проверки набора учетных данных. Он принимает учетные данные в качестве аргументов ключевого слова, имя пользователя и пароль для случая по умолчанию, проверяет их на каждом бэкэнде аутентификации и возвращает объект пользователя, если учетные данные действительны для бэкэнда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...