婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > DjangoRestFramework 使用 simpleJWT 登陸認證完整記錄

DjangoRestFramework 使用 simpleJWT 登陸認證完整記錄

熱門標簽:大連crm外呼系統 百度地圖標注位置怎么修改 無錫客服外呼系統一般多少錢 梅州外呼業務系統 老人電話機器人 北京電信外呼系統靠譜嗎 地圖標注視頻廣告 洪澤縣地圖標注 高德地圖標注是免費的嗎

本文為 djangorestframework-simplejwt 使用記錄。(官方文檔)

 1. 安裝 

pip install djangorestframework-simplejwt

 2. 使用

 創建 Django 項目及 app:

# 創建名為 simple 的工程
django-admin startproject simple
 
# 創建名為 users 的應用
cd simple
python manage.py startapp users

 目錄結構如下:

 在 `simple/settings.py` 中進行配置:

# simple/settings.py
 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',                        # add
    'rest_framework',               # add
    'rest_framework_simplejwt',     # add
]
 
REST_FRAMEWORK = {                  # add
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    )
}

 同步數據庫并創建超級用戶:

# 同步數據庫
python manage.py makemigrations
python manage.py migrate
 
# 創建超級用戶
python manage.py createsuperuser

在 `simple/urls.py` 中編寫路由: 

# simple/urls.py
from django.contrib import admin
from django.urls import path
from rest_framework_simplejwt.views import TokenRefreshView, TokenVerifyView, TokenObtainPairView
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('refresh/', TokenRefreshView.as_view(), name='token_refresh'),
    path('verify/', TokenVerifyView.as_view(), name='token_verify'),
]

 使用 python http 工具進行接口測試:

http -f POST http://127.0.0.1:8000/login/ username=admin password=123456

 3. 測試 API 接口

 在 `users/views.py` 中編寫如下代碼:

# users/views.py
from rest_framework import permissions
from rest_framework.response import Response
from rest_framework.views import APIView
 
 
class MyView(APIView):
    permission_classes = [permissions.IsAuthenticated]
 
    def get(self, request, *args, **kwargs):
        return Response("Get information successfully!")

 然后在 `simple/urls.py` 中添加路由:

# simple/urls.py
from users import views    # add
 
urlpatterns = [
    ...
    path('info/', views.MyView.as_view()),    # add
]

 使用 python http 工具進行測試:

4. 配置相關  

# settings.py
 
from datetime import timedelta
 
SIMPLE_JWT = {
    'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5),  # 訪問令牌的有效時間
    'REFRESH_TOKEN_LIFETIME': timedelta(days=1),    # 刷新令牌的有效時間
 
    'ROTATE_REFRESH_TOKENS': False,     # 若為True,則刷新后新的refresh_token有更新的有效時間
    'BLACKLIST_AFTER_ROTATION': True,   # 若為True,刷新后的token將添加到黑名單中, 
                                        # When True,'rest_framework_simplejwt.token_blacklist',should add to INSTALLED_APPS
 
    'ALGORITHM': 'HS256',       # 對稱算法:HS256 HS384 HS512  非對稱算法:RSA
    'SIGNING_KEY': SECRET_KEY,
    'VERIFYING_KEY': None,      # if signing_key, verifying_key will be ignore.
    'AUDIENCE': None,
    'ISSUER': None,
 
    'AUTH_HEADER_TYPES': ('Bearer',),           # Authorization: Bearer token>
    'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION',   # if HTTP_X_ACCESS_TOKEN, X_ACCESS_TOKEN: Bearer token>
    'USER_ID_FIELD': 'id',                      # 使用唯一不變的數據庫字段,將包含在生成的令牌中以標識用戶
    'USER_ID_CLAIM': 'user_id',
 
    # 'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),   # default: access
    # 'TOKEN_TYPE_CLAIM': 'token_type',         # 用于存儲令牌唯一標識符的聲明名稱 value:'access','sliding','refresh'
    #
    # 'JTI_CLAIM': 'jti',
    #
    # 'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',     # 滑動令牌是既包含到期聲明又包含刷新到期聲明的令牌
    # 'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5),       # 只要滑動令牌的到期聲明中的時間戳未通過,就可以用來證明身份驗證
    # 'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),  # path('token|refresh', TokenObtainSlidingView.as_view())
}

 5. 自定義返回 token 信息

 在 `users/serializers.py` 中編寫如下代碼:

# simple/serializers.py
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
 
 
class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
 
    def validate(self, attrs):
        data = super().validate(attrs)
        refresh = self.get_token(self.user)
        data['refresh'] = str(refresh)
        data['access'] = str(refresh.access_token)
        data['username'] = self.user.username
        return data

 在 'users/views.py` 及 `simple/urls.py` 中編寫如下代碼:

# users/views.py
from rest_framework_simplejwt.views import TokenObtainPairView
from users.serializers import MyTokenObtainPairSerializer
 
 
class MyTokenObtainPairView(TokenObtainPairView):
    serializer_class = MyTokenObtainPairSerializer
 
# simple/urls.py
from users.views import MyTokenObtainPairView
 
urlpatterns = [
    ...
    # modify
    path('login/', MyTokenObtainPairView.as_view(), name='token_obtain_pair'),
]

測試 API,可以看到返回的信息中多了 username 信息: 

http -f POST :8000/login/ username=admin password=123456

6. 手動頒發 token 

手動頒發 token 主要針對用戶注冊的情況,用戶注冊完之后直接返回 token。

以下代碼即針對一個 user 對象手動頒發一個 token 并返回。(用戶注冊同理,即 user 對象為注冊后獲取的用戶)

# users/views.py
 
class MyView(APIView):
    permission_classes = [permissions.IsAuthenticated]
 
    def get(self, request, *args, **kwargs):
        return Response("Get information successfully!")
 
    def post(self, request, *args, **kwargs):
        refresh = RefreshToken.for_user(request.user)
        content = {
            'refresh': str(refresh),
            'access': str(refresh.access_token),
        }
        return Response(content)

到此這篇關于DjangoRestFramework 使用 simpleJWT 登陸認證完整記錄的文章就介紹到這了,更多相關DjangoRestFramework登陸認證內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django restframework 框架認證、權限、限流用法示例
  • Django restframework 源碼分析之認證詳解
  • django restframework使用redis實現token認證

標簽:長春 岳陽 安慶 泉州 洛陽 怒江 吉林 清遠

巨人網絡通訊聲明:本文標題《DjangoRestFramework 使用 simpleJWT 登陸認證完整記錄》,本文關鍵詞  DjangoRestFramework,使用,simpleJWT,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《DjangoRestFramework 使用 simpleJWT 登陸認證完整記錄》相關的同類信息!
  • 本頁收集關于DjangoRestFramework 使用 simpleJWT 登陸認證完整記錄的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精一区二区三区| 欧美日韩免费观看一区二区三区| 亚洲欧美国产77777| 国产精品三级电影| 日韩电影在线免费| 欧美在线观看视频一区二区| 亚洲天堂av一区| 美女免费视频一区| 欧美精品v日韩精品v韩国精品v| 亚洲欧美偷拍三级| www.亚洲国产| 日本一区二区电影| 99re成人精品视频| 丝袜亚洲另类丝袜在线| 精品国产乱码久久久久久图片| 蜜桃久久av一区| 亚洲欧洲日韩在线| 欧美理论片在线| 精品亚洲porn| 亚洲国产精品久久久久婷婷884| 91精品国产手机| av午夜一区麻豆| 日本亚洲视频在线| 国产农村妇女毛片精品久久麻豆 | 色综合 综合色| 亚洲精品乱码久久久久| 欧美美女喷水视频| 精品一区二区av| 亚洲bt欧美bt精品| 中文字幕制服丝袜成人av| 欧美日韩一卡二卡| 成人av网站在线观看免费| 亚洲国产三级在线| 91久久精品一区二区三| 日本不卡免费在线视频| 亚洲综合一区二区三区| 国产精品久久久久久户外露出| 91麻豆精品国产自产在线观看一区| 国产a级毛片一区| 国产一区二区久久| 免费三级欧美电影| 青草av.久久免费一区| 婷婷中文字幕综合| 亚洲一区二区三区三| 一区二区三区四区乱视频| 国产精品传媒视频| 亚洲免费观看在线视频| 中文字幕一区av| 日韩欧美电影一二三| 91国在线观看| 欧美亚洲自拍偷拍| 欧美人妇做爰xxxⅹ性高电影 | 久久老女人爱爱| 日韩美一区二区三区| 日韩一区二区在线观看视频| 欧美综合久久久| 欧美午夜电影在线播放| 欧美日韩国产高清一区二区| 国产精品久久久一区麻豆最新章节| 久久品道一品道久久精品| 色诱亚洲精品久久久久久| 在线亚洲+欧美+日本专区| 欧美精品1区2区| 精品播放一区二区| 国产色综合一区| 中文字幕日韩av资源站| 婷婷成人激情在线网| 日本成人中文字幕| 不卡一卡二卡三乱码免费网站 | 精品少妇一区二区三区免费观看| 欧美性受xxxx| 国产欧美精品一区aⅴ影院 | 国产精品美女久久久久aⅴ国产馆| 久久亚洲影视婷婷| 一区二区三区在线视频免费| 日本欧美在线看| 欧美视频日韩视频| 国产欧美久久久精品影院| 久久狠狠亚洲综合| 日韩欧美激情在线| 麻豆精品一区二区三区| 欧美日韩精品欧美日韩精品一综合 | 精品国产一区二区三区不卡| 婷婷一区二区三区| av中文一区二区三区| 久久女同性恋中文字幕| 国产日韩视频一区二区三区| 毛片一区二区三区| 欧美性受xxxx黑人xyx| 亚洲人妖av一区二区| 岛国精品在线观看| 国产精品沙发午睡系列990531| 国产真实乱偷精品视频免| 日韩视频一区二区三区| 亚洲人成网站影音先锋播放| 亚洲精品国产精华液| 欧美在线观看视频在线| 亚洲精品视频一区| 国产白丝精品91爽爽久久| 日本一区二区三区高清不卡| 91天堂素人约啪| 最新成人av在线| 在线播放欧美女士性生活| 国产一区欧美一区| 亚洲欧美日韩国产成人精品影院 | 欧美日韩亚洲综合一区| 日韩av高清在线观看| 欧美成人女星排行榜| 成人av在线资源网| 午夜精品视频一区| 国产人妖乱国产精品人妖| 色综合一区二区| 激情图区综合网| 亚洲乱码国产乱码精品精可以看| 日韩三级免费观看| 久久国产日韩欧美精品| 成人av在线资源网站| 亚洲欧美色图小说| 欧美xfplay| 欧美大肚乱孕交hd孕妇| 欧美巨大另类极品videosbest| 国产一区激情在线| 亚洲一二三区不卡| 一区二区高清在线| 国产精品拍天天在线| 国产三级欧美三级日产三级99| 884aa四虎影成人精品一区| 99久久久久久| 97se亚洲国产综合自在线观| 国产精品99久久久久久久vr| 国产一区二区三区在线看麻豆| 天天免费综合色| 日韩电影在线观看电影| 全部av―极品视觉盛宴亚洲| 一二三四区精品视频| 亚洲第一综合色| 亚洲国产日韩a在线播放| 中文字幕第一区二区| 精品国产伦理网| 亚洲欧洲日韩一区二区三区| 亚洲品质自拍视频网站| 亚洲国产精品天堂| 国产资源精品在线观看| 欧美精品在线一区二区| 国产成人啪免费观看软件 | 日韩av在线播放中文字幕| 国内成人精品2018免费看| 欧美成人精精品一区二区频| 日韩vs国产vs欧美| 精品福利一区二区三区免费视频| 亚洲女厕所小便bbb| 欧美乱妇一区二区三区不卡视频| 精品午夜久久福利影院| 日韩欧美国产电影| 久久国产剧场电影| 日韩美女在线视频| 久久精品视频一区| 欧美一区二区国产| 亚洲乱码国产乱码精品精可以看| 欧美区一区二区三区| 最新日韩在线视频| 国产日产精品1区| 日韩精品中文字幕在线不卡尤物 | 青青草97国产精品免费观看无弹窗版| 欧美做爰猛烈大尺度电影无法无天| 国产一区二区主播在线| 中文乱码免费一区二区| 欧美一级视频精品观看| 麻豆视频一区二区| 日韩av网站在线观看| 国产精品电影院| 国产精品久久毛片av大全日韩| 国产成人无遮挡在线视频| 国产精品伊人色| 欧美亚洲愉拍一区二区| 日韩一区欧美一区| 亚洲成精国产精品女| 日韩理论片网站| 亚洲欧美日韩国产成人精品影院| 538在线一区二区精品国产| 成人精品国产免费网站| 麻豆精品久久久| 国产精品77777| 高清成人免费视频| 欧美精品三级日韩久久| 欧美激情综合五月色丁香| 精品久久久久久久久久久久包黑料| 欧美一级一区二区| 中文字幕视频一区| 国产午夜精品理论片a级大结局| 中文字幕制服丝袜一区二区三区 | 日本sm残虐另类| 亚洲欧美电影院| 亚洲丝袜制服诱惑| 色综合咪咪久久| 免费观看在线综合色| 欧美国产精品v| 国产高清精品在线| 国产精品乱码人人做人人爱| 99re热这里只有精品视频|