[Django] Django REST Framework(五): Authentication和Permissions

本文详细介绍了Django REST Framework中的身份验证(Authentication)和权限(Permissions)机制,包括BasicAuthentication、SessionAuthentication、TokenAuthentication和RemoteUserAuthentication四种验证方式,以及IsAuthenticated、IsAuthenticatedOrReadOnly和IsAdminUser等权限级别。同时,讨论了如何配置全局默认验证方式、当前View的验证方式、全局默认访问权限和View访问权限。
摘要由CSDN通过智能技术生成

概述

在介绍Django REST Framework(二):Request和Response 时提到,DRF提供了对身份验证和权限的处理机制,特点如下:

  • 1.对API的不同部分使用不同的认证策略;
  • 2.支持多种身份验证策略;
  • 3.对每个请求提供了用户和token信息。

在这篇文章中,将对身份验证和权限进行总结。使用时需要导入对应包:

from rest_framework import authenication
from rest_framework import permissions

NOTE:
由于是身份验证,因此我们首先得创建一个用户,Django中可通过如下命令创建一个管理员用户:
python manange.py createsuperuser

1.Authentication

身份验证是将收到的请求和一组标识证书(如用户名密码、令牌)进行关联的一种机制,以便权限和策略可以根据这个标识证书来决定是否允许该请求。因此,身份验证发生在验证权限和限制检查之前。

当收到的请求通过身份验证时:

  • request.user属性会设置为django.contrib.auth.User对象,即我们登录的对象(我们定义用户继承于User)。
  • request.auth会设置为对应的Token(如果带有Token)或者None(如果不带有Token)。

当收到请求身份验证失败时:

  • request.user属性会设置为django.contrib.auth.models.AnonymousUser对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值