国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

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

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

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

什么是JWT?

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

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

JWT的流程

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

1.簽發JWT

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

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

pip install djangorestframework-jwt

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

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

然后就可以簽發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

前端有兩種方式儲存數據,分別是localStorage 和 sessionStorage。

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

3.前端發送JWT

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

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

4.校驗JWT

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

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

標簽: Django
相關文章:
主站蜘蛛池模板: 欧美成年人视频 | 国产肥老妇视频一 | 男人的天堂在线免费视频 | 国内精品久久久久不卡 | 日韩在线 | 中文 | 萌白酱国产一区 | 国产成人福利视频在线观看 | 操出白浆视频 | 日本高清一本二本三本如色坊 | 一级特黄爽大片刺激 | 免费在线一级毛片 | 依依成人综合网 | 国产精品视频视频久久 | 日韩天天摸天天澡天天爽视频 | 久久影视一区 | 国产精品久久久久久久久久久久 | 亚洲国产人成中文幕一级二级 | 国产激爽大片在线播放 | 精品国产96亚洲一区二区三区 | 91情侣高清精品国产 | 日本欧美一区二区 | 亚州色吧 | 91精品欧美一区二区三区 | 亚洲成av人片在线观看 | 美女网站免费观看视频 | 国产精品欧美日韩一区二区 | 亚洲国产成人久久综合碰 | 国产精品视频一区二区猎奇 | 女女同性一区二区三区四区 | 成人看免费一级毛片 | 欧美日韩一区二区三区免费 | 成人三级在线视频 | 中文字幕最新中文字幕中文字幕 | 视频在线一区 | 91老色批网站免费看 | 亚洲在线观看网站 | 亚洲欧美日本人成在线观看 | 第一色区 | 欧美亚洲午夜 | 亚洲精品无码不卡在线播放he | 亚洲一区二区免费视频 |