zoukankan      html  css  js  c++  java
  • django rest framework authentication

    身份验证


    身份验证是将传入请求与一组识别凭证(例如请求的用户或其签名的令牌)相关联的机制。然后,权限和限制策略可以使用这些凭据来确定请求是否应该被允许。

    REST framework 提供了许多开箱即用的身份验证方案,同时也允许你实施自定义方案。

    身份验证始终在视图的开始处运行,在执行权限和限制检查之前,在允许继续执行任何其他代码之前。

    request.user 属性通常会设置为 contrib.auth 包的 User 类的一个实例。

    request.auth 属性用于其他身份验证信息,例如,它可以用来表示请求已签名的身份验证令牌。

    如何确定身份验证


    认证方案总是被定义为一个类的列表。 REST framework 将尝试使用列表中的每个类进行认证,并将使用成功认证的第一个类的返回值来设置 request.user 和 request.auth 。

    如果没有类进行身份验证,则将 request.user 设置为 django.contrib.auth.models.AnonymousUser 的实例,并将 request.auth 设置为 None.

    可以使用 UNAUTHENTICATED_USER 和 UNAUTHENTICATED_TOKEN 设置修改未经身份验证的请求的 request.user 和 request.auth 的值。

    设置认证方案


    默认的认证方案可以使用 DEFAULT_AUTHENTICATION_CLASSES setting 全局设置。例如

    REST_FRAMEWORK = {
        'DEFAULT_AUTHENTICATION_CLASSES': (
            'rest_framework.authentication.BasicAuthentication',
            'rest_framework.authentication.SessionAuthentication',
        )
    }
    

    基于 APIView 类的视图上设置身份验证策略

    authentication_classes = (SessionAuthentication,)
    

    API参考

    BasicAuthentication

    该认证方案使用 HTTP Basic Authentication,并根据用户的用户名和密码进行签名。Basic Authentication 通常只适用于测试。

    如果成功通过身份验证,BasicAuthentication 将提供以下凭据。

    request.user 是一个 Django User 实力.

    request.auth 是 None.

    未经身份验证的响应被拒绝将导致 HTTP 401 Unauthorized 的响应和相应的 WWW-Authenticate header。

    SessionAuthentication

    此认证方案使用 Django 的默认 session 后端进行认证。Session 身份验证适用于与您的网站在同一会话环境中运行的 AJAX 客户端。

    如果成功通过身份验证,则 SessionAuthentication 会提供以下凭据。

    request.user 是一个 Django User 实例.
    request.auth 是 None.
    未经身份验证的响应被拒绝将导致 HTTP 403 Forbidden 响应。

    如果您在 SessionAuthentication 中使用 AJAX 风格的 API,则需要确保为任何 “不安全” 的 HTTP 方法调用(例如 PUT,PATCH,POST 或 DELETE 请求)包含有效的 CSRF 令牌。

    JSONWebTokenAuthentication

    详见jwt篇

  • 相关阅读:
    窗口切换快捷键
    简单排序算法
    (转)Zen Coding 让 Notepad++ 代码书写健步如飞
    (转)图解SQL的Join
    第6章 AJAX
    今天是五四青年节
    看到的php的小知识
    (转)Notepad++配合QuickText打造快速高效的文本编辑器
    一种非常好的产生"唯一"临时文件的办法
    (转)linux 目录结构及其含义
  • 原文地址:https://www.cnblogs.com/zenan/p/10715836.html
Copyright © 2011-2022 走看看