1
resposta

[Dúvida] [Dúvida] login não funciona para usuarios criados no site

Estou criado o usuário pelo site , mas quando tento efetuar login redireciona para login de novo:

função de cadastro de login

    formCa = CadastroForms()
    if request.method =='POST':
        form = CadastroForms(request.POST)
        if form.is_valid:
            if form['senha'].value() != form['senha_confirm'].value():
                return redirect('cadastro')
            nome=form['nome_cadastro'].value()
            Email = form['email'].value()
            senha = form['senha'].value()

            if User.objects.filter(username=nome).exists():
                return redirect('cadastro')
            
            usuario = User.objects.create_user(username=nome,email=Email,password=senha)
            usuario.save()

            return redirect('login')

            
    return  render(request,'usuarios/cadastro.html', {'form':formCa})
            

função de login:

def login(request):
    form = LoginForms()
    

    if request.method =='POST':

        form = LoginForms(request.POST)

        if form.is_valid():
            nome = form['nome_login'].value()
            senha= form['senha'].value()

        usuario = auth.authenticate(
            request,
            username=nome,
            pasword=senha
        )
        if usuario is not None:
            auth.login(request,usuario)
            return redirect('index')
        else:
            return redirect('login')
    return  render(request,'usuarios/login.html',{'form':form})
1 resposta

Olá, Leandro.

Tudo bem?

Parece que você está enfrentando um problema ao tentar fazer login com usuários criados no site. O problema pode estar na sua função de login. Vamos dar uma olhada mais de perto no seu código.

Primeiro, notei um pequeno erro de digitação na função auth.authenticate. Você escreveu pasword em vez de password. Isso pode estar causando o problema. Corrija isso e veja se resolve:

def login(request):
    form = LoginForms()
    
    if request.method == 'POST':
        form = LoginForms(request.POST)
        
        if form.is_valid():
            nome = form['nome_login'].value()
            senha = form['senha'].value()
            
            usuario = auth.authenticate(
                request,
                username=nome,
                password=senha  # Corrigido aqui
            )
            
            if usuario is not None:
                auth.login(request, usuario)
                return redirect('index')
            else:
                return redirect('login')
    
    return render(request, 'usuarios/login.html', {'form': form})

Outro ponto importante é verificar se as informações estão sendo salvas corretamente no banco de dados durante o cadastro. Certifique-se de que os usuários estão sendo criados corretamente e que você pode vê-los na administração do Django ou diretamente no banco de dados.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.