詳解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. UDDI FAQs2. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法3. WML的簡(jiǎn)單例子及編輯、測(cè)試方法第1/2頁(yè)4. IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案5. 阿里前端開(kāi)發(fā)中的規(guī)范要求6. 得到XML文檔大小的方法7. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享8. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效9. ASP常用日期格式化函數(shù) FormatDate()10. 概述IE和SQL2k開(kāi)發(fā)一個(gè)XML聊天程序
