专栏首页数据云团Django进阶篇 Rest framework (七)

Django进阶篇 Rest framework (七)

Django进阶篇 Rest framework (六)

接着上节的 django rest framework 认证。

<1> 全局与局部配置认证类

可以直接在 settings.py 中添加全局配置项

那么如果个别的视图类不想认证呢?可以这样写:

① 这里没有重写 authentication_classes 属性,则使用全局配置的 authentication_classes,即在 settings.py 中的 authentication_classes。

② authentication_classes 中只包含 FirstAuthenticate,则只通过它的认证。

③ authentication_classes 为空,则不会进行认证。

<2> 究竟如何进行认证

上面说了想要定义多个认证规则,其实就是封装多个认证类,那么这些认证如何进行认证呢?

这里的 perform_authentication 就是进行主要的功能,在 request 类中有一个 _authenticate

分析下源码

_authenticate 方法中调用 authenticator.authenticate(self) 方法,返回给 user_auth_tuple,并通过判断 user_auth_tuple 是否为空,其实就像是从浏览器发送请求,request 中携带用户的认证信息,在进入视图类之前,通过一次一次调用认证类来查看携带的认证信息是否正确,如果正确则返回数据库中正确的 User 对象。如果不通过或者没有认证信息,则在 _not_authenticated 中按照匿名用户处理。

在 authenticate 中可以添加具体的认证逻辑,当然也可以在视图类中书写,但是 drf 中提供的组件,可以使得代码耦合度更低,维护性更强,更方便。

<3> 匿名用户认证

上面 _not_authenticated 的 UNAUTHENTICATED_TOKEN,UNAUTHENTICATED_USER。说明,也可以通过在 settings.py 中定义匿名用户的认证。

本文分享自微信公众号 - 数据云团(SmartData),作者:云团小楠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django-DRF | 身份验证

    Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编...

    小团子
  • Django Rest Framework 权限(上)

    为了更好的管理各个功能组件,在 django rest framework 认证中,可以将认证类单独的拿出来,放在其它目录下,然后导入到 views.py 文件...

    小团子
  • Django实战-信息资讯-用户认证

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(...

    小团子
  • 电路板上的这些标志你都知道是什么含义吗?

    防静电标志(标识)是防静电控制体系中不可缺少的一环,这些标志(标识)鲜明又形象地指示出与静电有关的产品、区域或包装等,提示工作人员时刻不忘静电的危害性,做好防范...

    单片机点灯小能手
  • 企业实名认证-腾讯云企业实名认证

    企业实名认证支持以下三种途径,用户可以选择其中任意一种方式,均可进行认证过程。首推用户使用微信公众平台认证,认证时效快,可以立即完成认证,获得认证结果。如果您的...

    用户5928094
  • 腾讯云企业实名认证

    很多企业不清楚腾讯云企业认证所需的资料和腾讯云企业认证方式,下面就为大家介绍腾讯云企业认证所需的资料和企业认证方式。

    用户6468650
  • .Net Core 认证系统源码解析

    不知不觉.Net Core已经推出到3.1了,大多数以.Net为技术栈的公司也开始逐步的切换到了Core,从业也快3年多了,一直坚持着.不管环境怎...

    郑小超.
  • 【职场】盘点2014年最火的IT认证及薪酬排行榜

    2014年关将至,对于IT专业人士来说,跳槽、转型、进修又成了热门话题,而IT专业认证作为IT人才市场的风向标,也是个人职业发展的敲门砖。近日调查公司Foote...

    小莹莹
  • 看懂供应商云安全评估字里行间之意

    认证是评估云提供商的安全性的一个很好的起点,但如果用户想了解其中有多大的风险,就不能只是简单的照本宣科,必须进行更深一步的了解。 云安全评估和认证旨在帮助企业了...

    静一
  • 云供应商安全评估:小心落入陷阱

    认证是评估云提供商的安全性的一个很好的起点,但如果用户想了解其中有多大的风险,就不能只是简单的照本宣科,必须进行更深一步的了解。 云安全评估和认证旨在帮助企业了...

    静一

扫码关注云+社区

领取腾讯云代金券