詳解Django配置JWT認(rèn)證方式
1. 安裝 rest_framework + djangorestframework_simplejwt
安裝djangorestframework_simplejwt : pip install djangorestframework-simplejwt
安裝rest_framework: pip install djangorestframework
djangorestframework_simplejwt 是提供 jwt 的 django 應(yīng)用。
2. 配置好 rest_framework 后,settings.py 里加上以下內(nèi)容以支持 jwt認(rèn)證
REST_FRAMEWORK = { ’DEFAULT_AUTHENTICATION_CLASSES’: [ ’rest_framework_simplejwt.authentication.JWTAuthentication’, ],}
3. 寫(xiě)個(gè)測(cè)試的 view
from rest_framework import permissionsfrom rest_framework_simplejwt import authenticationclass TestView(views.APIView): permission_classes = [permissions.IsAuthenticated] authentication_classes = (authentication.JWTAuthentication,) def get(self, request, *args, **kwargs): return Response(’ok’)
4.urls.py 導(dǎo)入 jwt 的兩個(gè) view
from rest_framework_simplejwt.views import ( TokenObtainPairView, TokenRefreshView, )urlpatterns = [ ... url(r’^api/auth/token/obtain/$’, TokenObtainPairView.as_view()), # 需要添加的內(nèi)容 url(r’^api/auth/token/refresh/$’, TokenRefreshView.as_view()), # 需要添加的內(nèi)容 url(r’^api/test/$’, TestView.as_view()), # 添加測(cè)試views的路由 ...]
5. 獲取Token
先啟動(dòng) server 端口為默認(rèn)的8000
方式一:通過(guò)curl
cmd 里運(yùn)行 curl,獲取 token
curl -X POST -H 'Content-Type: application/json' -d ’{'username': 'abab', 'password': 'abab123456'}’ http://localhost:8000/api/auth/token/obtain/
結(jié)果返回了 token
{'access':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwidXNlcl9pZCI6MywianRpIjoiZDRlMTJiMjk0M2ZiNGFkYTg1NzZiNWIzMzcyY2RlMjQiLCJleHAiOjE1MzE1MDY5Njl9.S1MPTw359xVK-GpmJary1fZwDsHb8yXsVtyf-tCbHM8','refresh':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsInVzZXJfaWQiOjMsImp0aSI6IjAyYWM3NmQ0MDBkNzRlYzNhOGU5NDM2MWYzYzUzMWQyIiwiZXhwIjoxNTMxNTkzMDY5fQ.rXkYG2SJ74vof3rA38xX-EfMagHxeQRv7ZolszofuHA'}
方式二:通過(guò)PostMan 軟件
只需要設(shè)置如下三個(gè)地方就可以了

6. 提供 token,獲取 testview 的信息
方式一:通過(guò)curl
curl > -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwidXNlcl9pZCI6MywianRpIjoiZDRlMTJiMjk0M2ZiNGFkYTg1NzZiNWIzMzcyY2RlMjQiLCJleHAiOjE1MzE1MDY5Njl9.S1MPTw359xVK-GpmJary1fZwDsHb8yXsVtyf-tCbHM8' > http://localhost:8000/api/test/'ok'
方式二:通過(guò)PostMan 軟件
設(shè)置如下幾個(gè)地方,看你的接口是Get請(qǐng)求還是Post請(qǐng)求,自己設(shè)置接口請(qǐng)求方式。
Token 填寫(xiě)的是上一步獲取到的Token內(nèi)容

默認(rèn)Token過(guò)期時(shí)間為5分鐘,可以通過(guò)設(shè)置修改過(guò)期時(shí)間,設(shè)置方法和詳細(xì)設(shè)置文檔,去Bigyoung小站(bigyoung.cn)查看進(jìn)階內(nèi)容。
到此這篇關(guān)于Django 配置JWT認(rèn)證方式的文章就介紹到這了,更多相關(guān)Django 配置JWT認(rèn)證方式內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 基于android studio的layout的xml文件的創(chuàng)建方式2. 詳解Android studio 動(dòng)態(tài)fragment的用法3. 什么是python的自省4. Android如何加載Base64編碼格式圖片5. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題6. 圖文詳解vue中proto文件的函數(shù)調(diào)用7. ASP.NET MVC實(shí)現(xiàn)區(qū)域或城市選擇8. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟9. Vue3狀態(tài)管理的使用詳解10. node以及npm版本不對(duì)應(yīng)出錯(cuò)的完美解決方法

網(wǎng)公網(wǎng)安備