美文网首页
测开平台(1) - 用户权限验证2-认证和授权

测开平台(1) - 用户权限验证2-认证和授权

作者: 足__迹 | 来源:发表于2019-11-10 21:01 被阅读0次
  • 页面认证 Browsable API 页面认证
    1,指定permission_classes
    2,添加rest_framework.urls 路由

  • json web Toke认证

    • 常见的认证机制
      1,session 认证
      2,Token 认证
  • Session认证
    1,保持在服务端,增加服务器开销
    2,分布架构中,难以保持session绘画同步
    3,CSRF风险

  • Token 认证
    1,保存在客户端
    2,跨语言,跨平台
    3,推展性强
    4,鉴权性能高

JWT

  • 安装第三方模块 rest_framework_jwt
  • 设置获取Token的接口
    1, 在user模块的urls中添加
from django.urls import path, include
from rest_framework_jwt.views import obtain_jwt_token

urlpatterns = [

   path('login/', obtain_jwt_token),
]

2,在项目setting中设置
2.1 设置允许JWT认证

  'DEFAULT_AUTHENTICATION_CLASSES': [
      #默认首先token认证
      'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
      'rest_framework.authentication.SessionAuthentication',
      'rest_framework.authentication.BasicAuthentication'
  ],

2.2 设置路由

 path('user/',include('user.urls'))

演示:

  • 获取token


    image.png
  • 获取数据


    image.png

注意使用POSTMAN 需要修改默认的JWT_AUTH_HEADER_PREFIX


image.png

源码:
这个函数负责token返回,如果需要定制则重写这个函数

def jwt_response_payload_handler(token, user=None, request=None):
    """
    Returns the response data for both the login and refresh views.
    Override to return a custom response such as including the
    serialized representation of the User.

    Example:

    def jwt_response_payload_handler(token, user=None, request=None):
        return {
            'token': token,
            'user': UserSerializer(user, context={'request': request}).data
        }

    """
    return {
        'token': token
    }

在utile中重写,在setting中重新指定:


image.png
  'JWT_RESPONSE_PAYLOAD_HANDLER': 'utils.jwt_handler.jwt_response_payload_handler',

JWT的组成

image.png
  • 第一部分 头:可以通过base64为解密,不会存放任何敏信息


    image.png
  • 第三部分 : 通过秘钥加密


    image.png

相关文章

  • 测开平台(1) - 用户权限验证2-认证和授权

    页面认证 Browsable API 页面认证1,指定permission_classes2,添加rest_fra...

  • shiro小记

    shiro介绍 Shiro是一个Java平台的开源权限框架,用于认证和访问授权 shiro用户验证流程 流程1:主...

  • Shiro Subject详解

    Shiro中认证授权组件Subject,为我们提供了当前用户、角色和授权的相关信息,可以进行登录,退出,权限验证,...

  • Linux基础-权限管理

    Linux基础-权限管理 一.权限管理 1.用户权限: 认证:1.1 Authentication;授权:Auth...

  • shiro

    一:基础概念 什么是权限管理 权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经...

  • 测开平台(1) - 用户权限验证1

    当前用户没有做权限校验任何借口可以直接访问,这是不符合要求的 在项目URL中添加 源码: 提供了登陆和登出,前后端...

  • Kubernetes 权限控制介绍

    K8s的用户和权限管理包括两个方面:认证和授权。认证解决用户是谁的问题,授权解决用户能做什么的问题。通过合理的权限...

  • springsecurity讲解1

    SpringSecurity是一个权限验证的安装框架,有身份验证(用户名密码)和用户授权(权限)等功能. 快速上手...

  • Django02身份验证

    Django提供了一套身份验证和授权的权限系统,允许验证用户凭证,并定义每个用户允许执行的操作。 权限系统框架包括...

  • #读书笔记#增长黑客DAY11-王悦怡

    摘要: 应用推送: 1 .推送授权:不同平台对推送通知的授权方式和权限大小标准不同。为了提高用户保留推送通知权限的...

网友评论

      本文标题:测开平台(1) - 用户权限验证2-认证和授权

      本文链接:https://www.haomeiwen.com/subject/fpblbctx.html