# Documentação Django 6.0.7

# 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`, e este consiste em dois itens listados na definição do `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` gerencia sessões através de requisições.

2. `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

Using Django’s default implementation

- Trabalhando com objetos User

- Permissões e autorização

- Autenticação em requisições web

- Gerenciando usuários no admin

Referência da API para a implementação padrão

Customizing Users and authentication

Password management in Django