restframework使用JWT驗(yàn)證

1 安裝Django擴(kuò)展庫

pip install djangorestframework
pip install djangorestframework-jwt

2 新建用戶model匹表, 在app/models.py文件中,若修改丢郊,請確保from app.models import 可以成功

from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.

#userProfile繼承AbstractUser分類被饿,進(jìn)行拓展
class UserProfile(AbstractUser):
    """
    用戶類拓展
    """
    name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名" )
    avatar = models.CharField(max_length=100, null=True, blank=True, verbose_name="頭像")
    role = models.CharField(max_length=10, default="員工", verbose_name="角色")

    class Meta:
        verbose_name = "用戶"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

3 執(zhí)行數(shù)據(jù)庫遷移

python manage.py makemigrations app_name
python mange.py migrate app_name

4 settings.py設(shè)置

AUTH_USER_MODEL = "interface.UserProfile" # interface為app_name
#設(shè)置rest-framework的權(quán)限驗(yàn)證
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}
#設(shè)置JWT的過期時(shí)間,以及JWT的token開頭字符串(驗(yàn)證協(xié)議)
JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7),
    'JWT_AUTH_HEADER_PREFIX': 'JWT',
}

5 設(shè)置用戶登錄url铭若,在urls.py中設(shè)置

from django.contrib import admin
from django.urls import path, include
from rest_framework_jwt.views import obtain_jwt_token

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api-token-auth/', obtain_jwt_token), #新增行
]

操作完以上5步驟即可整合JWT到框架中


使用Postman或其他工具測試Token

  • 創(chuàng)建用戶
python manage.py createsuperuser
  • 使用REST-client測試接口


    image.png
  • 請求其他接口樣例


    image.png

保證請求的header中包含了Authorization的token洪碳,其中token前要加JWT(手動(dòng)空格)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末递览,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瞳腌,更是在濱河造成了極大的恐慌绞铃,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫂侍,死亡現(xiàn)場離奇詭異儿捧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吵冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門纯命,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人痹栖,你說我怎么就攤上這事亿汞。” “怎么了揪阿?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵疗我,是天一觀的道長。 經(jīng)常有香客問我南捂,道長吴裤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任溺健,我火速辦了婚禮麦牺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鞭缭。我一直安慰自己剖膳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布岭辣。 她就那樣靜靜地躺著吱晒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沦童。 梳的紋絲不亂的頭發(fā)上仑濒,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機(jī)與錄音偷遗,去河邊找鬼墩瞳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛氏豌,可吹牛的內(nèi)容都是我干的矗烛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼箩溃,長吁一口氣:“原來是場噩夢啊……” “哼瞭吃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涣旨,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤歪架,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后霹陡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體和蚪,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年烹棉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了攒霹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浆洗,死狀恐怖催束,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伏社,我是刑警寧澤抠刺,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站摘昌,受9級特大地震影響速妖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜聪黎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一罕容、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧稿饰,春花似錦锦秒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梧喷,卻和暖如春砌左,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铺敌。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工汇歹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人偿凭。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓产弹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子痰哨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容