詳解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. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)2. CentOS郵件服務(wù)器搭建系列—— POP / IMAP 服務(wù)器的構(gòu)建( Dovecot )3. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼4. django創(chuàng)建css文件夾的具體方法5. phpstudy apache開(kāi)啟ssi使用詳解6. VMware中如何安裝Ubuntu7. IntelliJ IDEA創(chuàng)建web項(xiàng)目的方法8. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲9. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁(yè)10. ASP中實(shí)現(xiàn)字符部位類(lèi)似.NET里String對(duì)象的PadLeft和PadRight函數(shù)
