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
:
- “‘django.contrib.auth’” contém o núcleo do framework de autenticação, e seus modelos padrão.
'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’:
SessionMiddleware
gerencia sessões através de requisições.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.