Django DRF Token認證基本使用小結(jié)
一. 前言
Django Rest Framework Token是Django Rest Framework中的一個擴展,用于實現(xiàn)用戶認證和授權(quán)。它為每個用戶生成一個唯一的Token,并將其存儲在數(shù)據(jù)庫中。在用戶進行API請求時,用戶需要在請求的HTTP Header中包含Token,這樣服務(wù)器就可以驗證用戶的身份。
二. 基本使用
1. 安裝DRF Token擴展:
pip install djangorestframework pip install django-rest-framework-authtoken
2.在Django的settings.py中添加以下配置
INSTALLED_APPS = [
...
'rest_framework',
'rest_framework.authtoken',
...
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
}
3. 遷移
python manage.py migrate
遷移完成會生成authtoken_token這張表來記錄用戶的token

4. 生成Token
from rest_framework.authtoken.models import Token from django.contrib.auth.models import User user = User.objects.create_user(username='johnson', password='doe') token, created = Token.objects.get_or_create(user=user)
現(xiàn)在,johnson用戶已經(jīng)有了一個令牌。可以將此令牌返回給客戶端,并在以后的請求中使用它進行身份驗證:
GET /api/test/ HTTP/1.1 Authorization: Token <token>
5. 使用TokenAuthentication
現(xiàn)在,可以通過在視圖中使用TokenAuthentication來保護視圖
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.views import APIView
from rest_framework.response import Response
class TestView(APIView):
authentication_classes = [TokenAuthentication]
permission_classes = [IsAuthenticated]
def get(self, request):
return Response({'message': 'Hello, world!'})
在這個例子中,TestView視圖被保護,只有經(jīng)過身份驗證的用戶才能訪問。
到此這篇關(guān)于Django DRFToken認證基本使用小結(jié)的文章就介紹到這了,更多相關(guān)Django DRFToken認證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django objects的查詢結(jié)果轉(zhuǎn)化為json的三種方式的方法
這篇文章主要介紹了Django objects的查詢結(jié)果轉(zhuǎn)化為json的三種方式的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Python如何使用print()函數(shù)輸出格式化字符串
Python中內(nèi)置的%操作符和format函數(shù),都可以用于格式化字符串,下面這篇文章主要給大家介紹了關(guān)于Python如何使用print()函數(shù)輸出格式化字符串的相關(guān)資料,需要的朋友可以參考下2021-08-08
python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例
今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
python使用multiprocessing模塊實現(xiàn)帶回調(diào)函數(shù)的異步調(diào)用方法
這篇文章主要介紹了python使用multiprocessing模塊實現(xiàn)帶回調(diào)函數(shù)的異步調(diào)用方法,實例分析了multiprocessing模塊異步調(diào)用的相關(guān)使用技巧,需要的朋友可以參考下2015-04-04
在mac下查找python包存放路徑site-packages的實現(xiàn)方法
今天小編就為大家分享一篇在mac下查找python包存放路徑site-packages的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11

