日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

如何使用會話Cookie和Java實現JWT身份驗證

瀏覽:216日期:2022-08-15 14:21:52

HTTP是無狀態協議,用于傳輸數據。它啟用了客戶端和服務器端>之間的通信。它最初是為了在Web瀏覽器和Web服務器之間建立連接而建立的。比如在網上購物,我們添加一些商品,例如。耳機到我們的購物車,然后,我們繼續尋找其他項目,在此期間,我們希望在執行任何其他任務是存儲購物車項目的狀態且不丟失它們。這意味著我們希望在整個購物過程中記住我們的狀態。由于HTTP是無狀態協議,因此要克服問題,我們可以使用會話或者令牌

1、基于會話的身份驗證

在JSON Web令牌出現之前,我們主要使用這種身份驗證。在這種身份驗證中,服務器負責身份驗證,客戶端不知道發送請求后服務器端會發生什么。

那么什么是會話Cookie?

由于客戶端未指定Expires(過期時間)或Max-Age(最大上限)指令,因此在客戶端關閉時將其刪除。但是,Web瀏覽器可能會使用會話還原,這會使大多數會話Cookie永久保持狀態,就像從未關閉過瀏覽器一樣。

如何使用會話Cookie和Java實現JWT身份驗證

用戶在網絡瀏覽器上登錄網站發生什么。例如,用戶登錄后,服務器 將為該用戶創建一個會話并將該會話數據存儲在服務器內存中。當用戶在網站上執行某些活動時,會創建一個會話ID,該會話ID存儲在客戶端瀏覽器的cookie中。在用戶提出的每個請求中,cookie都將隨之發送。然后,當用戶最初登錄時,服務器可以使用存儲在服務器內存中的會話數據來驗證Cookie上的會話數據。當用戶從網站注銷時,該會話數據將從數據庫和服務器內存中刪除。

2、基于令牌的身份驗證

在基于令牌的身份驗證中,我們使用JWT(JSON Web Tokens)進行身份驗證。這是RESTful API的廣泛使用方法。

如何使用會話Cookie和Java實現JWT身份驗證

當用戶發送帶有登錄詳細信息的用戶身份驗證請求時,服務器將以JSON WEB TOKENS(JWT)的形式創建一個加密的令牌,并將其發送回客戶端。當客戶端收到令牌時,這意味著該用戶以通過身份驗證,可以使用客戶端執行任何活動。

JWT通常存儲在客戶端的localstorage中,當用戶從服務器請求任何數據或對該網站執行任何活動時,JWT將作為該用戶的唯一密鑰發送。因此,當服務器接收到該請求時,它將針對每個請求驗證JWT僅是該特定用戶,然后將所需的響應發送回客戶端。

localStorage.setItem('key', 'value');

用戶狀態存儲在客戶端JWT中。當用戶注銷時,令牌將從客戶端(localStorage)中刪除。因此,大多數數據存儲在客戶端,并且可以直接訪問,而不是向服務器發送請求。

JSON WEB TOKENS由(.)連接的三個部分組成:1.標頭2.有效載荷3.簽名

JWT結構:xxxxx.yyyyy.zzzzz

輸出包含三個由點分割的Base64-URL字符串,可以在HTML和HTTP環境中輕松傳遞這些字符串,與基于XML的標準(例如SAML)相比,它更緊湊。

JWT已對先前的標頭和有效負載進行了編碼,并用一個密鑰進行簽名,如下

如何使用會話Cookie和Java實現JWT身份驗證

哪個更好用?

在現代Web應用程序中,JWT被廣泛使用,因為它的伸縮性優于基于會話的cookie,因為令牌存儲在客戶端,而會話使用服務器內存來存儲用戶數據,這可能是一個大問題。大量用戶一次訪問應用程序。由于JWT是隨著每個請求一起發送的,而且包含所有用戶信息,因此即使對JWT進行了編碼,也有必要在JWT中使用必要的信息,并且應避免使用敏感信息或者將其加密以防止安全攻擊。

沒有固定的方法可以始終使用,它取決于開發人員和要求的類型,以找出在哪種情況下需要使用哪種方法。

3、jwt實現登錄

//定義JWT的有效時長七天 private static final long EXPIRE_TIME = 60 * 1000 * 60 * 24 * 7; //簽發人 private static String ISSUER = 'K_ang'; /*秘鑰*/ private static final String SING = K*&^A%$#N@!G;

/** * 生成令牌 * * @param map * @return */ public static String getToken(Map<String, String> map) { //設置過期時間 Date date = null; try { date = new Date(System.currentTimeMillis() + EXPIRE_TIME); //創建token JWTCreator.Builder builder = JWT.create() .withIssuer(ISSUER) .withExpiresAt(date); //添加信息 map.forEach((k, v) -> { builder.withClaim(k, v); }); return builder.sign(Algorithm.HMAC256(SING)); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 驗證token * * @param token */ public static boolean verify(String token, String userNo) { try { //設置加密算法 JWTVerifier verifier = JWT.require(Algorithm.HMAC256(SING)).withClaim('userNo', userNo).build(); //校驗token DecodedJWT jwt = verifier.verify(token); return true; } catch (Exception e) { return false; } } /** * 獲取token信息方法 * * @param * @return */ public static String getTokenInfo(String token) { DecodedJWT decode = JWT.decode(token); return decode.getClaim('userNo').asString(); }}

@PostMapping('/login') public Result login(@PathParam('empNo') String empNo, @PathParam('empPassword') String empPassword) { if (empNo == null || ''.equals(empNo)) { return ResultUtil.error(103, '請輸入用戶名,用戶名不能為空'); } if (empPassword == null || ''.equals(empPassword)) { return ResultUtil.error(103, '請輸入密碼,密碼不能為空'); } Emp emp = empService.login(empNo, empPassword); if (emp == null) { return ResultUtil.error(103, '用戶不存在,獲取token失敗'); } if (emp.getEmpPassword() == null || !emp.getEmpPassword().equals(empPassword)) { return ResultUtil.error(103, '密碼錯誤,獲取token失敗'); } //正常token String token = JwtUtils.sign(empNo, empPassword); emp.setToken(token); return ResultUtil.success(200, '登錄成功', emp); }

以上就是如何使用會話Cookie和Java實現JWT身份驗證的詳細內容,更多關于使用會話Cookie和Java實現JWT身份驗證的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲不卡系列| 99热免费精品| 欧美韩日一区| 综合国产精品| 久久国产直播| 不卡福利视频| 狠狠久久伊人| 国产精品欧美在线观看| 美日韩精品视频| 麻豆国产精品一区二区三区| 亚洲三级网站| 夜夜精品视频| 色偷偷色偷偷色偷偷在线视频| 日韩激情中文字幕| 蜜臀精品久久久久久蜜臀| 国产精品99一区二区| 国产69精品久久| 另类专区亚洲| 色天使综合视频| 日韩欧美午夜| 免费在线小视频| 99久久久国产精品美女| 99久久久久| 久久精品国产大片免费观看| 成人日韩av| 日产精品一区二区| 92国产精品| 欧美不卡在线| 久久久人人人| 亚洲深夜福利| 亚洲伊人精品酒店| 欧美一区免费| 欧美激情五月| 麻豆视频在线观看免费网站黄| 神马久久午夜| 一区在线视频观看| 免费人成精品欧美精品 | 日韩精品影视| 久久国产麻豆精品| 免费在线观看不卡| 日韩亚洲精品在线观看| 日韩欧美视频专区| 国产伊人久久| 久久久人人人| 久久最新视频| 成人欧美一区二区三区的电影| 九九99久久精品在免费线bt| 国产欧美丝祙| 精品五月天堂| 91精品国产调教在线观看| 最新日韩av| 国产农村妇女精品一二区| 欧美91精品| 亚洲精品日本| 黄毛片在线观看| 首页国产欧美久久| 欧美成人精品午夜一区二区| 日韩在线欧美| 日本综合精品一区| 福利片在线一区二区| 亚洲成人精选| 国产精品xxx在线观看| 午夜欧美巨大性欧美巨大| 美女国产精品| 黄色网一区二区| 午夜在线一区二区| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 亚洲精品影视| 精品网站999| 桃色av一区二区| 欧美日韩中文字幕一区二区三区| 日韩欧美中文字幕电影| 亚洲欧美不卡| 日韩亚洲精品在线| 欧美 日韩 国产精品免费观看| 精品久久久网| 国产午夜精品一区在线观看| 亚洲永久精品唐人导航网址| 尹人成人综合网| 九一成人免费视频| 麻豆国产一区| 综合一区二区三区| 欧美va亚洲va日韩∨a综合色| 国产精品美女在线观看直播| 欧美日韩精品免费观看视频完整| 麻豆国产一区| 日本中文字幕一区二区| 美女网站视频一区| 麻豆精品在线视频| 日韩av午夜在线观看| 婷婷综合激情| 亚洲精品**中文毛片| 国产亚洲观看| 亚久久调教视频| 韩国精品主播一区二区在线观看| 欧美日韩一区自拍| 久久av一区二区三区| 肉色欧美久久久久久久免费看| 日韩国产精品久久久| 国产精品日本欧美一区二区三区| 国产精品v一区二区三区| 麻豆传媒一区二区三区| 免费欧美在线视频| 国产午夜精品一区二区三区欧美| 91免费精品| 国产精品男女| 香蕉精品视频在线观看| 美女精品久久| 日产欧产美韩系列久久99| 国产成人精品一区二区三区在线| 欧美亚洲一区二区三区| 亚洲精品激情| 久久亚洲电影| 制服诱惑一区二区| 国产亚洲亚洲| 国产视频一区欧美| 日韩精品免费一区二区在线观看| 日韩av有码| 国产精品一级在线观看| 蜜桃av一区二区| 免费不卡在线视频| 日韩一区二区免费看| 亚洲第一精品影视| 久久久久99| 欧美日韩精品一区二区三区在线观看| 亚洲欧美久久久| 国产视频久久| 久久亚洲国产| 九九久久电影| 激情综合自拍| 亚洲福利一区| 久久亚洲成人| 欧美日韩色图| 日韩午夜av在线| 欧美另类专区| 男女激情视频一区| 日韩激情网站| 国产精品1区| 日韩一区二区中文| 捆绑调教美女网站视频一区| 日本午夜精品一区二区三区电影| 日本视频中文字幕一区二区三区| 久久激五月天综合精品| 欧美日韩99| 日韩成人综合| 国产精品美女在线观看直播| 亚洲女同一区| 日韩中文字幕无砖| 久久视频国产| 偷拍欧美精品| 免费成人av在线播放| 精品日韩毛片| 欧美日韩色图| 亚洲精品成人| 香蕉久久精品| 日韩午夜av| 日韩国产激情| 国产亚洲精品精品国产亚洲综合| 91精品国产乱码久久久久久久| 欧美亚洲福利| 亚洲一卡久久| 日韩国产一区二区| 日本成人手机在线| 国产综合精品一区| 精品视频99| 国产精品免费看| 国产精品久久观看| 视频一区二区欧美| 亚洲精品在线影院| 国产私拍福利精品视频二区| 欧美成人基地| 久久97视频| 青青草国产精品亚洲专区无| 欧美亚洲激情| 欧美gv在线| 国产91在线精品| 久久99免费视频| 欧美专区一区| 亚洲一区有码| 国产亚洲在线| 九九久久婷婷| 99久久精品网| 亚洲国产欧美日本视频| 久久国产精品色av免费看| 中文字幕一区二区三区日韩精品| 日韩深夜视频| 超碰成人av| 国产成人精品一区二区三区在线| 日韩二区三区四区| 日日夜夜免费精品| 蜜臀av亚洲一区中文字幕| 欧美亚洲激情| 1024精品一区二区三区| 国产激情一区| 久久精品99国产精品日本| 欧美一级专区| 日韩一级不卡| 亚洲综合不卡| 亚洲激情另类| 亚洲欧美久久久|