15.13. Modelos em Django: Autenticação e autorização

Página 87

15.13. Modelos em Django: Autenticação e Autorização

O Django, uma estrutura de aplicativo da web Python, fornece um sistema de autenticação e autorização integrado que permite aos desenvolvedores criar aplicativos da web seguros e confiáveis. Este capítulo abordará em detalhes esse sistema e como ele pode ser personalizado para atender às necessidades de diferentes projetos.

Autenticação

A autenticação é o processo de verificação da identidade de um usuário. Em outras palavras, é como o sistema determina quem é o usuário. No Django, a autenticação é realizada usando o sistema de autenticação integrado.

O sistema de autenticação do Django fornece um modelo User que representa os usuários do sistema. Este modelo possui campos para armazenar informações como nome de usuário, senha, email, nome e sobrenome. Além disso, o modelo User possui métodos para verificar a senha, alterar a senha e verificar se a conta do usuário está ativa.

Para autenticar um usuário, o Django fornece a função authenticate(). Esta função aceita um nome de usuário e uma senha e retorna um objeto User se a autenticação for bem-sucedida. Caso contrário, retorna None.

Exemplo de autenticação

from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
    # A backend authenticated the credentials
else:
    # No backend authenticated the credentials

Autorização

A autorização é o processo de determinar o que um usuário autenticado tem permissão para fazer. No Django, a autorização é realizada usando o sistema de permissões integrado.

O sistema de permissões do Django fornece uma maneira de definir o que os usuários podem e não podem fazer. As permissões são definidas em termos de modelos e ações. Por exemplo, você pode definir uma permissão que permite a um usuário adicionar, alterar ou excluir instâncias de um modelo específico.

As permissões são armazenadas no modelo Permission, que possui campos para o nome da permissão, o conteúdo do tipo da permissão e o modelo ao qual a permissão se aplica. O modelo User tem um relacionamento muitos para muitos com o modelo Permission, o que significa que um usuário pode ter várias permissões e uma permissão pode ser atribuída a vários usuários.

Exemplo de autorização

from django.contrib.auth.models import User, Permission
from django.contrib.contenttypes.models import ContentType
from myapp.models import BlogPost

content_type = ContentType.objects.get_for_model(BlogPost)
permission = Permission.objects.create(
    codename='can_publish',
    name='Can Publish Posts',
    content_type=content_type,
)
user = User.objects.get(username='john')
user.user_permissions.add(permission)

Além disso, o Django fornece a função has_perm() que verifica se um usuário tem uma permissão específica. Esta função aceita o nome da permissão e retorna True se o usuário tiver a permissão e False caso contrário.

Exemplo de verificação de permissão

if user.has_perm('myapp.can_publish'):
    # The user has the permission
else:
    # The user does not have the permission

Conclusão

O sistema de autenticação e autorização do Django é uma ferramenta poderosa que permite aos desenvolvedores criar aplicativos da web seguros e confiáveis. Com ele, você pode controlar quem tem acesso ao seu aplicativo e o que eles podem fazer. E, graças à flexibilidade do Django, você pode personalizar este sistema para atender às necessidades do seu projeto.

Ahora responde el ejercicio sobre el contenido:

Qual é a função do sistema de autenticação e autorização integrado do Django?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

8815.14. Modelos em Django: Testes em Django

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.