---
title: "Autenticação de usuário no Django"
version: 3.2
locale: pt-br
source: https://docs.djangoproject.com/pt-br/3.2/topics/auth/
canonical: https://djangodocs.dev/pt-br/3.2/topics/auth/
---
# Autenticação de usuário no Django

Django vem com um sistema de autenticação de usuário. Ele cuida de contas de usuários, grupos, permissões e sessões de usuários baseadas em cookies. Essa seção da documentação explica como a implementação padrão funciona assim que você instala, assim como ensina a :doc:’estender e customizar \</topics/auth/customizing\>’ para satisfazer as necessidades do seu projeto.

## Visão Geral

O sistema de autenticação Django cuida da autenticação e da autorização. Resumidamente,  autenticação verifica se um usuário é quem ele diz que é, e autorização determina o que um usuário autenticado pode fazer. Aqui, o termo autenticação se refere às duas tarefas.

O sistema de autenticação consiste de:

- Usuários
- Permissões: valores booleanos (sim ou não) designam se um usuário pode executar determinada tarefa.
- Grupos: Uma forma generica de aplicar etiquetas e permissões em mais de um usuário.
- Um sistema hashing configurável de senhas.
- Formulários e ferramentas de visualização para autenticação de usuários, ou restrição de conteúdo.
- Um sistema de backend plugável.

O sistema de autenticação em Django pretende ser bastante genérico e não fornece alguns recursos comumente encontrados em sistemas de autenticação de rede. Soluções para esses problemas comuns foram implementadas em pacotes de terceiros.

- Checando força da senha
- Limitando tentativas de login
- Autenticação contra terceiros (OAuth, por exemplo)
- Object-level permissions

## Instalação

O suporte de autenticação do Django está dentro do módulo contrib no `django.contrib.auth`. Por padrão, a configuração requerida está incluída no `settings.py` gerado pelo [`django-admin startproject`](/pt-br/3.2/ref/django-admin/#django-admin-startproject), e este consiste em dois itens listados na definição  do [`INSTALLED_APPS`](/pt-br/3.2/ref/settings/#std-setting-INSTALLED_APPS):

1. “‘django.contrib.auth’” contém o núcleo do framework de autenticação, e seus modelos padrão.
2. `'django.contrib.contenttypes'` é o :doc:’sistema de contenttype \</ref/contrib/contenttypes\>’ Django, que permite associar permissões aos modelos que você criar.

e esses itens na sua configuração :setting:’MIDDLEWARE’:

1. [`SessionMiddleware`](/pt-br/3.2/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware) gerencia [sessões](/pt-br/3.2/topics/http/sessions/) através de requisições.
2. [`AuthenticationMiddleware`](/pt-br/3.2/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware) associa usuários com requisições de sessões em uso.

Com essas configurações feitas, rodar o comando `manage.py migrate` cria as tabelas de banco de dados necessárias para modelos relacionados a autenticação e permissões para quaisquer modelos definidos em suas aplicações instaladas.

## Uso

[Usando o Sistema de Autenticação Django](/pt-br/3.2/topics/auth/default/)

- [Trabalhando com objetos User](/pt-br/3.2/topics/auth/default/#user-objects)
- [Permissões e autorização](/pt-br/3.2/topics/auth/default/#topic-authorization)
- [Autenticação em requisições web](/pt-br/3.2/topics/auth/default/#auth-web-requests)
- [Gerenciando usuários no admin](/pt-br/3.2/topics/auth/default/#auth-admin)

[Referência da API para a implementação padrão](/pt-br/3.2/ref/contrib/auth/)

[Personalizando Usuários e autenticação](/pt-br/3.2/topics/auth/customizing/)

[Gerenciamento de senha no Django](/pt-br/3.2/topics/auth/passwords/)
