[發明專利]一種基于JWT的用戶認證的限流方法及裝置有效
| 申請號: | 202011503384.0 | 申請日: | 2020-12-17 |
| 公開(公告)號: | CN112491931B | 公開(公告)日: | 2023-04-07 |
| 發明(設計)人: | 劉虎;周顯敬;張紅霞;朱俊輝 | 申請(專利權)人: | 武漢卓爾信息科技有限公司 |
| 主分類號: | H04L9/40 | 分類號: | H04L9/40 |
| 代理公司: | 武漢紅觀專利代理事務所(普通合伙) 42247 | 代理人: | 李季 |
| 地址: | 430000 湖北省武漢市東湖新技術*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 jwt 用戶 認證 限流 方法 裝置 | ||
本發明公開一種基于JWT的用戶認證的限流方法及裝置,所述方法包括:校驗用戶首次登錄時的用戶名和密碼,生成JWT并發送至客戶端保存;在數據庫中記錄并更新對應用戶的登錄狀態,登錄IP,TokenID;接收到客戶端的資源訪問請求時,校驗用戶的用戶名、密碼和攜帶的JWT;若校驗通過,校驗同樣的用戶信息是否在其他地址登錄,若是,則更新數據庫中上一次登錄的TokenID,使上一次登錄的TokenID失效。本發明可以從源端登錄開始限制并發資源的訪問,提升了系統的安全性和穩定性。
技術領域
本發明屬于信息安全技術領域,具體涉及一種基于JWT的用戶認證的限流方法及裝置。
背景技術
隨著技術的發展,分布式web應用的普及,通過session管理用戶登錄狀態成本越來越高,因為基于傳統的session管理用戶信息,需要將用戶信息保存在服務端,即便近幾年內存數據庫逐漸成熟,對于服務端仍是不小的壓力,特別是對于用戶量大的互聯網系統。JWT的解決方案是,將認證信息返回個客戶端,儲存在客戶端,下次訪問其他頁面,需要從客戶端傳遞認證信息回服務器端。
當前基于JWT的用戶認證技術大多為了解決單點登錄和跨應用的,這對于分布式系統來說是很有必要的,但絕大多數基于JWT的認證用戶技術并不能防止不同的用戶使用同一個認證信息在不同的設備上訪問資源,這對于高并發的系統來說,存在一定的安全隱患。
發明內容
有鑒于此,本發明提出了本發明的目的在于解決認證信息泄漏時多個設備使用同一個認證信息進行資源訪問的問題。
本發明第一方面,公開一種基于JWT的用戶認證的限流方法,所述方法包括:
校驗用戶首次登錄時的用戶名和密碼,生成JWT并發送至客戶端保存;
在數據庫中記錄并更新對應用戶的登錄狀態,登錄IP,TokenID;
接收到客戶端的資源訪問請求時,校驗用戶的用戶名、密碼和攜帶的JWT;
若校驗通過,校驗用戶名、密碼和登錄IP對應的用戶信息是否在其他地址登錄,若是,則更新數據庫中上一次登錄的TokenID,使上一次登錄的TokenID失效。
優選的,所述生成的JWT負荷中攜帶用戶名,當前登錄IP。
優選的,所述接收到客戶端的資源訪問請求中攜帶用戶的JWT,接收到客戶端的資源訪問請求時,校驗用戶的用戶名、密碼,校驗所述JWT是否過期。
優選的,校驗用戶名、密碼和登錄IP對應的用戶信息是否在其他地址登錄,若是,則更新數據庫中用戶上一次登錄的TokenID,使上一次登錄的TokenID失效具體包括:
獲取當前賬號上一次登錄時的TokenID和登錄IP;
比較當前請求的TokenID與上一次登錄時的TokenID,若相同,則校驗通過,否則返回錯誤信息并跳轉至登陸頁面;
比較當前請求的登錄IP與上一次登錄時的登錄IP;
若相同,則通過驗證,返回用戶請求的資源至客戶端;
否則,將數據庫中上一次登錄的TokenID置為空,根據當前登錄信息重新生成JWT,使前一個同樣用戶名登錄的TokenID失效。
優選的,數據庫中用戶登錄信息包括登錄IP、當前賬號上個登錄用戶的TokenID。
本發明第二發明,公開一種基于JWT的用戶認證的限流裝置,所述裝置包括:
JWT生成單元:校驗用戶首次登錄時的用戶名和密碼,生成JWT并發送至客戶端保存;
數據庫單元:在數據庫中記錄并更新對應賬號的登錄狀態,登錄IP,TokenID;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢卓爾信息科技有限公司,未經武漢卓爾信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011503384.0/2.html,轉載請聲明來源鉆瓜專利網。





