当前位置: 首页 > news >正文

淘宝客做自已的网站媒体:多地新增感染趋势回落

淘宝客做自已的网站,媒体:多地新增感染趋势回落,在线客服系统网站源码,电子商务网站系统1.认证Authentication 在 Django REST framework (DRF) 中,可以在配置文件中配置全局默认的认证方案。常见的认证方式包括 cookie、session、和 token。DRF 提供了灵活的认证机制,可以在全局配置文件中设置默认认证方式,也可以在具体的视图类…

1.认证Authentication

在 Django REST framework (DRF) 中,可以在配置文件中配置全局默认的认证方案。常见的认证方式包括 cookie、session、和 token。DRF 提供了灵活的认证机制,可以在全局配置文件中设置默认认证方式,也可以在具体的视图类中设置单独的认证方式。

以下是默认的配置文件示例,位于

REST_FRAMEWORK = { # 配置认证方式的选项 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.SessionAuthentication', # session认证 'rest_framework.authentication.BasicAuthentication', # 基本认证 ) 
}

可以在具体的视图类中通过设置 authentication_classes 类属性来设置单独的不同的认证方式。例如:

from rest_framework.authentication import SessionAuthentication, BasicAuthentication 
from rest_framework.views import APIView 
class ExampleView(APIView): # 类属性 authentication_classes = [SessionAuthentication, BasicAuthentication] def get(self, request): pass

认证失败会有两种可能的返回值,这需要配合权限组件来使用:

  • 401 Unauthorized 未认证
  • 403 Permission Denied 权限被禁止

2.自定义认证

在一些特定场景中,可能需要自定义认证方式。以下是一个自定义认证的示例,位于 drfdemo.authentication 模块中:

from rest_framework.authentication import BaseAuthentication 
from rest_framework.exceptions import APIException 
class CustomAuthentication(BaseAuthentication): """ 自定义认证方式 """ def authenticate(self, request): print(":::") """ 认证方法 request: 本次客户端发送过来的HTTP请求对象 """ token = request._request.META.get("HTTP_TOKEN") if token != "123456789": raise APIException("认证失败") user = "root" return (user, token) # 按照固定的返回格式填写(用户模型对象, None)

3.在视图中使用自定义认证

在视图中,可以通过设置 authentication_classes 类属性来使用自定义认证:

from django.contrib.auth.models import AnonymousUser
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.authentication import SessionAuthentication
from drfdemo.authentication import CustomAuthenticationclass HomeAPIView(APIView):# authentication_classes = [CustomAuthentication, ]def get(self, request):"""单独设置认证方式"""print(request.user)  # 在中间件AuthenticationMiddleware中完成用户身份识别的,如果没有登录request.user值为AnonymousUserif request.user.id is None:return Response("未登录用户:游客")else:return Response(f"已登录用户:{request.user}")

当然,也可以注释掉视图中的配置,改成全局配置。以下是在 settings.py 中的配置示例:

"""drf配置信息必须全部写在REST_FRAMEWORK配置项中"""
REST_FRAMEWORK = {# 配置认证方式的选项【DRF的认证是内部循环遍历每一个注册的认证类,一旦认证通过识别到用户身份,则不会继续循环】'DEFAULT_AUTHENTICATION_CLASSES': ('drfdemo.authentication.CustomAuthentication',          # 自定义认证'rest_framework.authentication.SessionAuthentication',  # session认证'rest_framework.authentication.BasicAuthentication',    # 基本认证)
}

4.详细解释

  1. DEFAULT_AUTHENTICATION_CLASSES: 定义了认证类的列表,DRF 会按照顺序依次尝试每一个认证类。

    • CustomAuthentication: 自定义认证类,用于特定的认证需求。
    • SessionAuthentication: 使用 Django 的会话认证,适用于浏览器和持久会话。
    • BasicAuthentication: 使用 HTTP 基本认证,适用于简单的 API 认证。
  2. 视图中使用认证类: 可以在具体的视图类中通过设置 authentication_classes 类属性来覆盖全局设置,定义特定视图的认证方式。

  3. 认证失败的返回值:

    • 401 Unauthorized: 未认证。
    • 403 Permission Denied: 权限被禁止。

通过这些配置,您可以灵活地定制 DRF 的认证机制,以满足不同的需求。这种灵活性使得 DRF 能够适应各种复杂的应用场景,从简单的基本认证到自定义的复杂认证逻辑。

http://www.ds6.com.cn/news/68194.html

相关文章:

  • 北堂网站制作小程序开发公司哪里强
  • 便宜做网站的公司哪家好武汉楼市最新消息
  • 做网站维护要什么专业如何申请百度竞价排名
  • 济南做网站的高端品牌营销策划公司简介
  • 郑州网站优化汉狮网络电商seo是什么
  • 网页及网站建设用什么软件河南网站优化公司哪家好
  • wordpress主题seven柒比贰思亿欧seo靠谱吗
  • wap网站使用微信登陆关键词排名查询
  • o2o b2b b2c c2c b2a优化网络的软件下载
  • 贵州做网站的公司无锡网站制作
  • 广西建设职业技术学院管理工程系网站2014考试前培训时间网站查询工具
  • 企业商城网站建设方案seo计费系统源码
  • 做营销网站建设价格沧州网站建设推广
  • 怎么用阿里云服务器做网站企业网络推广的方法有哪些
  • 陕西的网站建设公司排名百度统计api
  • 安徽省工程造价信息网什么是优化设计
  • 网站酷站电脑培训速成班多少钱
  • 做测试的网站网站做成app
  • 保定网站维护公司淘宝宝贝排名查询
  • 邻水网站建设windows优化大师手机版
  • 翻译软件翻译英语做网站百度云盘搜索引擎入口
  • 求哪位大神发人和动物做愛视频网站无线网络优化
  • 加强政府门户网站建设与管理seo计费系统
  • 怎么提高网站加载速度seo综合查询工具下载
  • 做网站新手流程资源搜索引擎
  • 仿网站收费cba赛程
  • 网站建设新手教学视频软文广告代理平台
  • 做公司网站视频指数基金怎么买才赚钱
  • 网站建设投入及费用百度怎么精准搜索
  • axure怎么做响应式网站自己在家怎么做跨境电商