djangorestframework-jwt模塊


jwt認證規則

"""
全稱:json web token
解釋:加密字符串的原始數據是json,后台產生,通過web傳輸給前台存儲
格式:三段式 - 頭.載荷.簽名 - 頭和載荷才有的是base64可逆加密,簽名才有md5不可逆加密
內容:
	頭(基礎信息,也可以為空):加密方式、公司信息、項目組信息、...
	載荷(核心信息):用戶信息、過期時間、...
	簽名(安全保障):頭加密結果+載荷加密結果+服務器秘鑰 的md5加密結果
	
	
認證規則:
	**后台一定要保障 服務器秘鑰 的安全性(它是jwt的唯一安全保障)
	后台簽發token -> 前台存儲 -> 發送需要認證的請求帶着token -> 后台校驗得到合法的用戶
	
	
為什么要采用jwt認證:
	1) 后台不需要存儲token,只需要存儲簽發與校驗token的算法,效率遠遠大於后台存儲和取出token完成校驗
	2) jwt算法認證,更適合服務器集群部署
"""

jwt模塊

"""
安裝:pip install djangorestframework-jwt
模塊包:rest_framework_jwt

才有drf-jwt框架,后期任務只需要書寫登錄
	為什么要重寫登錄:drf-jwt只完成了賬號密碼登錄,我們還需要手機登錄,郵箱登錄
	為什么不需要重寫認證類:因為認證規則已經完成且固定不變,變得只有認證字符串的前綴,前綴可以在配置文件中配置
"""

前后台分離模式下信息交互規則

"""
1)任何人都能直接訪問的接口
	請求不是是get、還是post等,不需要做任何校驗

2)必須登錄后才能訪問的接口
	任何請求方式都可能做該方式的限制,請求必須在請求頭中攜帶認證信息 - authorization
	
3)前台的認證信息獲取只能通過登錄接口
	前台提供賬號密碼等信息,去后台換認證信息token
	
4)前台如何完成登錄注銷
	前台登錄成功一般在cookie中保存認證信息token,分離注銷就是前台主動清除保存的token信息
"""

JWT認證模塊使用總結

"""
1、jwt認證:三段式的格式、每一段的內容、由后台簽發到前台存儲再到傳給后台校驗的認證流水線

2、drf-jwt插件:
	三個接口:簽發token、校驗token、刷新token
	自定義jwt插件的配置
	
3、使用jwt插件完成多方式登錄
	視圖類:將請求數據交給序列化類完成校驗,然后返回用戶信息和token(從序列化對象中拿到)
	序列化類:自定義反序列化字段,全局鈎子校驗數據得到user和token,並保存在序列化類對象中
		token可以用jwt插件的rest_framework_jwt.serializers中
			jwt_payload_handler,jwt_encode_handler
		完成簽發

4、自定義頻率類完成視圖類的頻率限制
	1)定義類繼承SimpleRateThrottle,重寫get_cache_key方法,設置scope類屬性
	2)scope就是一個認證字符串,在配置文件中配置scope字符串對應的頻率設置
	3)get_cache_key的返回值是字符串,該字符串是緩存訪問次數的緩存key	
"""


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM