from rest_framework.views import APIView

找到APIView中的dispatch方法



class MyAuth:
def authenticate(self):
pass class Books(APIView):
authentication_classes = [MyAuth] def get(self, request):
pass

认证组件的使用


-写一个认证类,继承BaseAuthentication
class MyAuth(BaseAuthentication):
def authenticate(self,request):
#写一些认证的逻辑
# print('我是认证类中的方法,只要配置了,一定会走我')
token=request.GET.get('token')
token_obj=models.Token.objects.filter(token=token).first()
if token_obj:
#有值表示登录了
#token_obj.user 当前登录的user对象
return token_obj.user,token_obj
else:
#没有值,表示没有登录,抛异常
raise AuthenticationFailed('您没有登录')
-局部使用
-在视图类中写
authentication_classes=[MyAuth,]
-全局使用
在settings.py中配置
REST_FRAMEWORK={
"DEFAULT_AUTHENTICATION_CLASSES":["app01.MyAuths.MyAuth",]
}
-局部禁用:
authentication_classes = []

权限组件的使用

	-写一个权限类,继承BasePermission
class MyPermision(BasePermission):
message = '不是超级用户,查看不了'
def has_permission(self,request,view):
#因为权限在认证之后执行的,所有能取到reuqest.user
if request.user.user_type==1:
return True
else:
return False
-局部使用
-在视图类中写
permission_classes=[MyPermision,]
-全局使用
在settings.py中配置
REST_FRAMEWORK={
"DEFAULT_PERMISSION_CLASSES":["app01.MyAuths.MyPermision",]
}
-局部禁用:
permission_classes = []
-读源码看到的东西:
-返回值显示中文,写个message=“中文”

Django权限和认证模块的解读的更多相关文章

  1. Django之Auth认证模块

    一.Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们在开发网站的时候,无可避免的需要设计实现网站的用户系统,此时我们需要实现包括用户注册,用户登陆,用户认证,注销修改密码等功能 ...

  2. django(权限、认证)系统——User模型

    在Django的世界中,在权限管理中有内置的Authentication系统.用来管理帐户,组,和许可.还有基于cookie的用户session.这篇blog主要用来探讨这套内置的Authentica ...

  3. django(权限、认证)系统—— Permissions和Group

    接着上面的3篇讨论文章,我们阐述了Django中如何使用Authentication系统进行,用户的创建,登陆,登出,完成了用户的认证.接下来,我们要看另外一个议题,那就是Authorization授 ...

  4. django(权限、认证)系统——用户Login,Logout

    上面两篇文章,讲述的Django的Authentication系统的核心模型对象User API和相关的使用,本文继续深入,讨论如何在Web中使用Authentication系统. 前面说了,Djan ...

  5. Django权限系统auth模块详解

    转自:原文出处 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理. auth可以和admin模块配合使用, 快速建立网站的管理系统. 在INSTALLED_A ...

  6. django(权限、认证)系统——第三方组件实现Object级别权限控制

    在我的系列blog<Django中内置的权限控制>中明确提及到,Django默认并没有提供对Object级别的权限控制,而只是在架构上留了口子.在这篇blog中,我们探讨一个简单流行的Dj ...

  7. django(权限、认证)系统—— 基于Authentication backends定制

    在这篇文章中,我们进行最后关于DjangoPermission系统的探讨,来谈谈关于Permission系统后台接口和扩展后台接口的开发. Django实现的这套permission体系,在底层被抽象 ...

  8. django(权限、认证)系统——自定义UserProfile储存User额外信息

    上篇文章我们引出了Django内置的权限控制系统,讲了安装,和最核心和基本的User模型的API和其Manager的API. 接下来我们继续深入下去,使用User对象做一些事情,首先当然就是创建一个U ...

  9. (30)auth模块(django自带的用户认证模块)

    Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的 ...

随机推荐

  1. 微信小程序之对象转化为数组

    对象转成数组方式一(数组里面是一个个number类型的元素) let dictObject= { , , , , }; // 对象转成数组方式一 var createArr = [] for (let ...

  2. 使用redis做为MySQL的缓存-C语言编写UDF

    介绍 在实际项目中,MySQL数据库服务器有时会位于另外一台主机,需要通过网络来访问数据库:即使应用程序与MySQL数据库在同一个主机中,访问MySQL也涉及到磁盘IO操作(MySQL也有一些数据预读 ...

  3. redis列表和有序集合

    redis中的list数据类型是可以插入重复数据的,有去重的需求的话可以用redis有序集合数据类型 Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中. 如果某个成员已经是 ...

  4. Laravel 别名Redis 与 Redis 扩展冲突

    use Redis; //通过别名引用会报错 今天尝试使用了 Laravel 的 redis 结果报了如下错误. Non-static method Redis::xxx() cannot be ca ...

  5. .NET C#获取当前网页地址信息

    设当前页完整地址是:http://www.qiandabao.com/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名"www ...

  6. FCKEDITOR在.NET中的使用

    FCKEDITOR在.NET中的使用 FCKeditor介绍 FCKeditor是一个功能强大支持所见即所得功能的文本编辑器,可以为用户提供微软office软件一样的在线文档编辑服务.它不需要安装任何 ...

  7. [CareerCup] Guards in a museum 博物馆的警卫

    A museum was represented by a square matrix that was filled with O, G, and W where O represented ope ...

  8. 第二十二章 集成验证码——《跟我学Shiro》

    目录贴:跟我学Shiro目录贴 在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止机器人模拟真实用户登录而恶意访问,如暴力破解用户密码/恶意评论等.目前也有一些验证码比较简单,通过一 ...

  9. git merge仓

    git merge --no-ff branch 合并指定代码 如果有冲突 git mergetool   可视化解决冲突, qa! 全退出 如果修复失败 git checkout branch -f ...

  10. linux centos7 开启 mysql 3306 端口 外网访问 的实践

    第〇步:思路 3306 端口能否被外网访问,主要要考虑: (1)mysql的3306 端口是否开启?是否没有更改端口号? (2)mysql 是否允许3306 被外网访问? (3)linux 是否已经开 ...