电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:166日期: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
相關文章:
主站蜘蛛池模板: 云南成人高考网| 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 江西自考网 | 加热制冷恒温循环器-加热制冷循环油浴-杭州庚雨仪器有限公司 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 长沙广告公司|长沙广告制作设计|长沙led灯箱招牌制作找望城湖南锦蓝广告装饰工程有限公司 | 起好名字_取个好名字_好名网免费取好名在线打分 | 谷梁科技| 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 没斑啦-专业的祛斑美白嫩肤知识网站-去斑经验分享 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 北京租车牌|京牌指标租赁|小客车指标出租 | 北京租车牌|京牌指标租赁|小客车指标出租 | 股票入门基础知识_股票知识_股票投资大师_格雷厄姆网 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 |