zoukankan      html  css  js  c++  java
  • Django 配置JWT认证方式

    1. 安装 rest_framework + djangorestframework_simplejwt

    安装djangorestframework_simplejwt :pip install djangorestframework-simplejwt

    安装rest_framework: pip install djangorestframework

    djangorestframework_simplejwt 是提供 jwt 的 django 应用。

    2. 配置好 rest_framework 后,settings.py 里加上以下内容以支持 jwt认证

    REST_FRAMEWORK = {
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'rest_framework_simplejwt.authentication.JWTAuthentication',
        ],
    }
    

    3. 写个测试的 view

    from rest_framework import permissions
    from rest_framework_simplejwt import authentication
    class TestView(views.APIView):
        permission_classes = [permissions.IsAuthenticated]
        authentication_classes = (authentication.JWTAuthentication,)
        def get(self, request, *args, **kwargs):
            return Response('ok')
    

    4.urls.py 导入 jwt 的两个 view

    from rest_framework_simplejwt.views import (
        TokenObtainPairView, 
        TokenRefreshView,     
    )
    
    urlpatterns = [
       ...
        url(r'^api/auth/token/obtain/$', TokenObtainPairView.as_view()),	# 需要添加的内容
        url(r'^api/auth/token/refresh/$', TokenRefreshView.as_view()),	# 需要添加的内容
        url(r'^api/test/$', TestView.as_view()),	# 添加测试views的路由
       ...
    ]
    

    5. 获取Token

    先启动 server 端口为默认的8000

    方式一:通过curl

    cmd 里运行 curl,获取 token

    curl   -X POST   -H "Content-Type: application/json"   -d '{"username": "abab", "password": "abab123456"}'   http://localhost:8000/api/auth/token/obtain/
    

    结果返回了 token

    {"access":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwidXNlcl9pZCI6MywianRpIjoiZDRlMTJiMjk0M2ZiNGFkYTg1NzZiNWIzMzcyY2RlMjQiLCJleHAiOjE1MzE1MDY5Njl9.S1MPTw359xVK-GpmJary1fZwDsHb8yXsVtyf-tCbHM8","refresh":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsInVzZXJfaWQiOjMsImp0aSI6IjAyYWM3NmQ0MDBkNzRlYzNhOGU5NDM2MWYzYzUzMWQyIiwiZXhwIjoxNTMxNTkzMDY5fQ.rXkYG2SJ74vof3rA38xX-EfMagHxeQRv7ZolszofuHA"}
    

    方式二:通过PostMan 软件

    只需要设置如下三个地方就可以了

    postman获取token

    6. 提供 token,获取 testview 的信息

    方式一:通过curl

    curl 
    >   -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwidXNlcl9pZCI6MywianRpIjoiZDRlMTJiMjk0M2ZiNGFkYTg1NzZiNWIzMzcyY2RlMjQiLCJleHAiOjE1MzE1MDY5Njl9.S1MPTw359xVK-GpmJary1fZwDsHb8yXsVtyf-tCbHM8" 
    >   http://localhost:8000/api/test/
    "ok"
    

    方式二:通过PostMan 软件

    设置如下几个地方,看你的接口是Get请求还是Post请求,自己设置接口请求方式。

    Token 填写的是上一步获取到的Token内容

    接口获取数据

    默认Token过期时间为5分钟,可以通过设置修改过期时间,设置方法和详细设置文档,去Bigyoung小站(bigyoung.cn)查看进阶内容。

    本文首发于BigYoung小站

  • 相关阅读:
    Java多线程知识-Callable和Future
    C#程序集Assembly学习随笔(增补版,附图)_AX
    C#程序集Assembly学习随笔(第一版)_AX
    【.Net】 C#访问修饰符
    访问修饰符(C# 编程指南)
    Restful API 架构与设计参考原则
    RESTful API 设计指南
    WebService的两种方式SOAP和REST比较
    公众号
    es6(const、let)
  • 原文地址:https://www.cnblogs.com/bigyoung/p/12852744.html
Copyright © 2011-2022 走看看