欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 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 登陸認證完整記錄的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    91麻豆精品国产91久久久使用方法| 日本vs亚洲vs韩国一区三区二区| 韩国v欧美v日本v亚洲v| 国产传媒第一页| 69精品人人人人| 亚洲影院久久精品| gogo亚洲国模私拍人体| 在线欧美一区二区| 亚洲少妇屁股交4| av成人老司机| 91黄色激情网站| 亚洲男人都懂的| 91美女视频网站| 欧美少妇一区二区| 亚洲一级二级在线| 日本国产在线视频| 欧美一区二区视频在线观看| 日本少妇一区二区| 日韩丰满少妇无码内射| 久久久99精品免费观看不卡| 国产精品综合一区二区三区| а天堂中文在线资源| 国产精品三级视频| 99这里都是精品| 欧美午夜精品一区二区三区| 亚洲国产精品久久久久婷婷884 | 精品人妻人人做人人爽夜夜爽| 色av一区二区| 亚洲综合免费观看高清完整版在线| 日本泡妞xxxx免费视频软件| 这里只有精品视频在线观看| 日本在线不卡视频| 日本免费www| 日韩一区有码在线| 久久发布国产伦子伦精品| 欧美久久久久免费| 久久精品国内一区二区三区| 日本视频在线免费| 亚洲免费在线视频一区 二区| 亚洲美女高潮久久久| 欧美成人精品1314www| 国产成人免费视频一区| 在线精品国精品国产尤物884a| 亚洲一区二区三区四区在线 | 亚洲欧美韩国综合色| xfplay5566色资源网站| 久久天天做天天爱综合色| 成人精品一区二区三区四区| 欧美喷水一区二区| 精品一区二区国语对白| 草视频在线观看| 亚洲成va人在线观看| 日本一道本视频| 亚洲人成网站精品片在线观看| 精品人妻伦一二三区久| 久久精品水蜜桃av综合天堂| 99这里只有久久精品视频| 欧美一区二区精品久久911| 国产一区二区三区不卡在线观看| 色偷偷一区二区三区| 日韩不卡一二三区| 免费成人深夜夜行网站| 午夜精品久久久久久久久久| 欧美xxxx精品| 午夜精品一区二区三区三上悠亚| 国产熟女一区二区| 一区二区三区欧美久久| 国产毛片欧美毛片久久久| 亚洲最大的成人av| 美国美女黄色片| 亚洲电影激情视频网站| av黄色在线免费观看| 亚洲一区在线看| 国产亚洲精品久久久久久豆腐| 亚洲图片一区二区| 欧美一级特黄高清视频| 日韩影院在线观看| 色婷婷综合久久久久中文 | 成人av在线资源网站| 日韩欧美视频在线| 99精品欧美一区二区蜜桃免费| 精品嫩草影院久久| 国产男女无遮挡猛进猛出| 久久久久亚洲蜜桃| 国产极品一区二区| 综合欧美亚洲日本| 亚洲一区 欧美| 偷偷要91色婷婷| 欧洲精品一区二区三区在线观看| 另类小说色综合网站| 欧美网站大全在线观看| 国产传媒一区在线| 精品国产一区二区三区四区四 | av中文字幕免费观看| 一区二区三区电影在线播| 91香蕉视频在线播放| 久久9热精品视频| 制服.丝袜.亚洲.中文.综合| 91香蕉国产在线观看软件| 国产女主播视频一区二区| 熟女俱乐部一区二区视频在线| 亚洲一区二区三区自拍| 色综合久久中文字幕| 国产一区999| 精品国产乱码久久久久久夜甘婷婷| 久久久久国产免费| 一区二区在线免费| 色综合天天综合网天天狠天天| 国产一区二区精品久久99| 日韩欧美一级在线播放| 先锋资源av在线| 亚洲国产日韩综合久久精品| 日本久久电影网| 成人动漫视频在线| 国产精品你懂的在线| 天天操夜夜操av| 国产二区国产一区在线观看| 久久久久久久精| 成人无码av片在线观看| 麻豆91在线观看| 精品国产一二三| 精品国产无码在线观看| 另类综合日韩欧美亚洲| 精品少妇一区二区三区免费观看 | 一区二区在线观看免费| 一本到三区不卡视频| 成人av在线一区二区三区| 国产精品国产三级国产aⅴ原创 | 97久久精品人人做人人爽50路 | 国产在线免费av| 国产精品123| 国产精品网站导航| 久久国产美女视频| 成人av在线播放网址| 亚洲欧美色综合| 欧美日韩在线精品一区二区三区激情| 91网址在线看| 亚洲午夜精品网| 91精品国产91综合久久蜜臀| 中文人妻一区二区三区| 免费在线观看日韩欧美| 日韩精品专区在线影院重磅| 中字幕一区二区三区乱码| 国产精品亚洲第一区在线暖暖韩国 | 国产一区第一页| 国产91精品免费| 亚洲人成网站影音先锋播放| 欧美日韩一区二区三区四区| 精品人妻在线视频| 免费人成精品欧美精品| 久久久久久久久久美女| 国产女人18水真多毛片18精品| 亚洲成人av免费观看| 午夜精品123| 26uuu色噜噜精品一区| 女同久久另类69精品国产| 99久久免费国产| 性做久久久久久免费观看欧美| 日韩欧美国产一区二区三区| 黄色激情小视频| 99国产精品国产精品久久| 亚洲福利视频一区| 精品久久99ma| 亚洲最大的黄色网址| 国内自拍偷拍视频| 秋霞成人午夜伦在线观看| 国产情人综合久久777777| 日本高清无吗v一区| 性囗交免费视频观看| 九九精品一区二区| 成人免费小视频| 欧美精品日日鲁夜夜添| 成都免费高清电影| 99国产精品视频免费观看| 丝袜a∨在线一区二区三区不卡| 久久久三级国产网站| 欧美性色黄大片| 性高潮久久久久久久| caoporn国产一区二区| 日韩avvvv在线播放| 日本一区二区三区国色天香 | 尤物在线免费视频| 韩国av中国字幕| 精品一区二区三区在线播放视频| 中文字幕一区二区三区在线播放| 在线不卡的av| 曰本女人与公拘交酡| av网站免费在线播放| av电影在线观看一区| 开心九九激情九九欧美日韩精美视频电影| 国产精品三级av| 欧美一区二区三区在线观看| 777777国产7777777| 中国av免费看| 99国产欧美久久久精品| 精品无码三级在线观看视频| 亚洲图片欧美色图| 国产精品美女久久久久久久网站| 6080yy午夜一二三区久久| 青花影视在线观看免费高清|