A autenticação de usuários é um aspecto crucial para qualquer aplicação web que deseja proteger certos recursos e permitir o acesso apenas a usuários autorizados. No Django, a autenticação de usuários é facilitada pela sua biblioteca de autenticação incorporada. Nesta seção, vamos explorar como criar um projeto Django que inclui autenticação de usuários.

Para começar, precisamos primeiro instalar o Django. Isso pode ser feito usando o pip, o instalador de pacotes Python. No terminal, basta executar o comando 'pip install django'. Uma vez instalado, podemos criar um novo projeto Django executando 'django-admin startproject myproject'.

Uma vez criado o projeto, precisamos criar uma nova aplicação para lidar com a autenticação de usuários. Isso pode ser feito executando 'python manage.py startapp authentication' na raiz do projeto. Isso criará uma nova pasta chamada 'authentication' com vários arquivos que serão usados para configurar a aplicação de autenticação.

Em seguida, precisamos adicionar a nova aplicação à lista de INSTALLED_APPS em settings.py. Isso permitirá que o Django reconheça a aplicação de autenticação e inclua suas funcionalidades no projeto. A lista de INSTALLED_APPS deve agora incluir 'authentication'.

Em seguida, precisamos configurar a autenticação de usuários. O Django vem com um sistema de autenticação incorporado que podemos utilizar. Para isso, precisamos adicionar a seguinte linha ao arquivo settings.py: 'AUTH_USER_MODEL = 'authentication.User'.

Isso informa ao Django para usar o modelo de usuário definido na aplicação de autenticação para todas as operações de autenticação. Agora precisamos criar esse modelo de usuário. Em models.py na aplicação de autenticação, adicione o seguinte código:

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    pass

Isso cria um modelo de usuário que herda de AbstractUser, um modelo de usuário base que inclui campos como username, password, email, first_name, last_name, etc. Podemos adicionar campos adicionais se necessário, mas para este exemplo, vamos manter as coisas simples.

Agora, precisamos criar as views para lidar com o login e o logout. Em views.py na aplicação de autenticação, adicione o seguinte código:

from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponse
from django.shortcuts import render, redirect

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            return HttpResponse('Invalid credentials')
    else:
        return render(request, 'authentication/login.html')

def logout_view(request):
    logout(request)
    return redirect('login')

Estas views lidam com o login e o logout, respectivamente. A view de login verifica se o método de requisição é POST. Se for, tenta autenticar o usuário com o username e password fornecidos. Se a autenticação for bem-sucedida, o usuário é logado e redirecionado para a página inicial. Se a autenticação falhar, uma resposta HTTP com a mensagem 'Invalid credentials' é retornada. Se o método de requisição não for POST, a página de login é renderizada.

A view de logout simplesmente faz logout do usuário e redireciona para a página de login.

Agora, precisamos criar as templates para o login. Crie uma nova pasta chamada 'templates' na pasta da aplicação de autenticação e, dentro dela, crie uma nova pasta chamada 'authentication'. Dentro desta pasta, crie um novo arquivo chamado 'login.html' e adicione o seguinte código:

{% extends 'base_generic.html' %}

{% block content %}
  

Login

{% csrf_token %} Username:
Password:
{% endblock %}

Esta é uma template simples de login que estende a template base_generic.html e substitui o bloco de conteúdo com um formulário de login.

Finalmente, precisamos adicionar as URLs para as views de login e logout. Em urls.py na aplicação de autenticação, adicione o seguinte código:

from django.urls import path
from . import views

urlpatterns = [
    path('login/', views.login_view, name='login'),
    path('logout/', views.logout_view, name='logout'),
]

Isso adiciona as URLs para as views de login e logout, respectivamente. Agora, se executarmos o servidor de desenvolvimento Django com 'python manage.py runserver' e navegarmos para 'http://localhost:8000/login', deveríamos ver a página de login e ser capazes de logar com um usuário existente.

Em resumo, a autenticação de usuários é uma parte importante de qualquer aplicação web e o Django facilita a implementação dessa funcionalidade. Com o sistema de autenticação incorporado do Django, podemos facilmente proteger recursos e permitir o acesso apenas a usuários autorizados.

Agora responda o exercício sobre o conteúdo:

Qual é o processo para configurar a autenticação de usuários em um projeto Django?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Criação de um projeto Django: Autorização e permissões

Próxima página do Ebook Gratuito:

68Criação de um projeto Django: Autorização e permissões

4 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto