Nessa aula nós vamos criar o sistema de login, cadastro, alteração e exclusão de aulas.
Primeiro vamos direcionar os dados de login.html para uma URL:
<form method="POST" action="{% url 'valida_login'%}">{% csrf_token %}
Vamos criar a respectiva URL.
path('valida_login/', views.valida_login, name = 'valida_login'),
Criando a função valida_login.
def valida_login(request):
email = request.POST.get('email')
senha = request.POST.get('senha')
senha = hashlib.sha256(senha.encode()).hexdigest()
usuarios = Usuario.objects.filter(email = email).filter(senha = senha)
if len(usuarios) == 0:
return redirect('/auth/login/?status=1')
elif len(usuarios) > 0:
request.session['usuario'] = usuarios[0].id
return redirect('/home/')
Prepare a view para receber o parâmetro enviado por GET.
def login(request):
status = request.GET.get('status')
return render(request, 'login.html', {'status': status})
Não vamos esquecer dos avisos em login.html.
{% if status == '1' %}
<div class="alert alert-danger" role="alert">
E-mail ou senha inválido
</div>
{% endif %}
{% if status == '2' %}
<div class="alert alert-warning" role="alert">
Faça login antes de acessar o sistema!
</div>
{% endif %}
Com o login realizado vamos impedir o usuário de acessar login e cadastro se já estiver logado, para isso basta acrescentar nas views:
if request.session.get('usuario'):
return redirect('/home/')
Vamos criar uma URL para o logout.
path('sair/', views.sair, name = 'sair'),
Crie a view.
def sair(request):
request.session.flush()
return redirect('/auth/login/')