亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

django使用JWT保存用戶登錄信息

瀏覽:107日期:2024-10-10 08:20:21

在使用前必須弄明白JWT的相關(guān)知識,可以看我的另一篇博文:https://www.jb51.net/article/166843.htm

什么是JWT?

Json web token (JWT), 是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn)((RFC 7519).該token被設(shè)計為緊湊且安全的,特別適用于分布式站點的單點登錄(SSO)場景。JWT的聲明一般被用來在身份提供者和服務(wù)提供者間傳遞被認(rèn)證的用戶身份信息,以便于從資源服務(wù)器獲取資源,也可以增加一些額外的其它業(yè)務(wù)邏輯所必須的聲明信息,該token也可直接被用于認(rèn)證,也可被加密。

JWT最普遍的一個作用就是用來保存用戶的登錄信息。

JWT的流程

django使用JWT保存用戶登錄信息

1.簽發(fā)JWT

在用戶正確輸入賬號密碼成功登錄后,服務(wù)端就會簽發(fā)JWT。

django使用第三方庫djangorestframework-jwt生成JWT,所以先安裝第三方包。

pip install djangorestframework-jwt

然后需要在django的配置上增加:

REST_FRAMEWORK = { ’DEFAULT_AUTHENTICATION_CLASSES’: ( ’rest_framework_jwt.authentication.JSONWebTokenAuthentication’, # jwt認(rèn)證 ’rest_framework.authentication.SessionAuthentication’, # 管理后臺使用 ’rest_framework.authentication.BasicAuthentication’, ), ...}JWT_AUTH = { # 導(dǎo)包: import datetime ’JWT_EXPIRATION_DELTA’: datetime.timedelta(days=1), # jwt有效時間}

然后就可以簽發(fā)JWT了。

from rest_framework_jwt.settings import api_settingsjwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER # 生payload部分的方法jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER # 生成jwt的方法# {’exp’: xxx, ’email’: ’’, ’user_id’: 1, ’username’: ’admin’}# user:登錄的用戶對象payload = jwt_payload_handler(user) # 生成payload, 得到字典token = jwt_encode_handler(payload) # 生成jwt字符串

生成之后,通過JSON字符串的方式返回給前端。

2.前端保存JWT

前端有兩種方式儲存數(shù)據(jù),分別是localStorage 和 sessionStorage。

HTML5提供了兩種在客戶端存儲數(shù)據(jù)的新方法:- localStorage - 永久數(shù)據(jù)存儲; 不同頁面數(shù)據(jù)共享- sessionStorage - 臨時存儲,關(guān)閉頁面或瀏覽器后會被清除; (讀取sessionStorage的數(shù)據(jù)時,僅當(dāng)前頁面(窗口)有效,但是JWT toekn會保存直到瀏覽器關(guān)閉)sessionStorage.key = val // 保存數(shù)據(jù)sessionStorage.key // 讀取數(shù)據(jù)sessionStorage.clear() // 清除所有sessionStorage保存的數(shù)據(jù)sessionStorage.removeItem(’key’);localStorage.key = val // 保存數(shù)據(jù)localStorage.key // 讀取數(shù)據(jù)localStorage.clear() // 清除所有l(wèi)ocalStorage保存的數(shù)據(jù)localStorage.removeItem(’key’);

3.前端發(fā)送JWT

前端會通過請求頭把JWT帶上,傳給服務(wù)端。

var config = { headers: { // 請求頭 ’Authorization’: ’JWT ’ + this.token # JWT后面有一個空格! },}; axios.get(’http://api.meiduo.site:8000/test/’, config) .then(response => {}) .catch(error => {});

4.校驗JWT

在前端有JWT后,再次登錄服務(wù)端,服務(wù)端就會對這串JWT進(jìn)行校驗,如果有修改就不會通過,如果過期了也不會通過。

到此這篇關(guān)于django使用JWT保存用戶登錄信息的文章就介紹到這了,更多相關(guān)django 保存用戶登錄信息內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 2021久久精品免费观看 | 久久视频这里只精品3国产 久久视热这只是精品222 | 女人18一级特级毛片免费看 | 免费国产h视频在线观看86 | 婷婷99视频精品全部在线观看 | 欧美日韩一区二区三区在线 | av国产精品| 欧美成人观看免费完全 | 嘿嘿嘿视频免费网站在线观看 | 亚洲成人免费网站 | 麻豆精品久久精品色综合 | 你懂得2019在线观看网站 | www在线观看免费视频 | 免费欧洲毛片a级视频 | 欧美bbww| 成人午夜在线 | 成人做爰视频在线观看视频 | 高清欧美一区二区免费影视 | 香蕉免费一区二区三区在线观看 | 99国产精品免费视频观看 | 国产女人综合久久精品视 | 国产高清1024永久免费 | 九九夜夜| 日本高清中文字幕视频在线 | 日韩无套| 午夜老司机永久免费看片 | 2022国产成人精彩在线视频 | 好爽快一点视频在线观看 | 日批视频网址免费观看 | 欧美一区二区三区在线播放 | 香蕉视频性 | 国产欧美精品亚洲桃花岛 | 亚洲 自拍 欧美 另类小说 | 亚洲高清在线观看 | 第一区| 亚洲艹| 亚洲一区二区在线 | 国产成人精彩在线视频50 | 好好的曰www视频在线观看 | 日韩在线不卡一区在线观看 | 国产小视频网站 |