成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:175日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美一区二区久久久| 欧美日韩天天操| 久久久久免费观看| 日韩亚洲欧美成人一区| 国产午夜三级一区二区三| 亚洲欧美日韩国产一区二区三区| 亚洲黄色在线视频| 国内精品伊人久久久久av一坑| 国产精品一区二区91| 欧美在线首页| 国产日韩一区二区| 欧美亚洲色图校园春色| 777亚洲妇女| 综合分类小说区另类春色亚洲小说欧美 | 久久精品国产第一区二区三区最新章节| 在线免费视频一区二区| 久久久www成人免费毛片麻豆 | 91在线观看一区二区| 国产在线视频一区二区三区| 色哟哟国产精品免费观看| 久久免费视频色| 不卡在线观看av| 亚洲一区二区三区四区中文| 精品久久久三级丝袜| 亚洲精品国久久99热| 亚洲成色精品| 欧美电影影音先锋| 自拍偷拍国产亚洲| 在线看片一区| 一区二区三区自拍| 波多野结衣的一区二区三区| 一道本成人在线| 三级不卡在线观看| 成人激情校园春色| 精品少妇一区二区三区免费观看 | 国产毛片久久| 国产日韩av一区| 久久国产精品免费| 亚洲第一黄色| 日韩毛片视频在线看| 一区二区av| 久久久精品免费网站| 欧美日本中文| 日韩丝袜情趣美女图片| 成人av资源在线| 国产欧美日韩激情| 亚洲黄页一区| 日韩视频123| 99久久99精品久久久久久| 欧美国产精品一区| 国产成人av电影在线| 色婷婷亚洲综合| 久久av中文字幕片| 欧美大片在线观看一区| 免费成人在线观看| 日韩亚洲视频| 欧美成人艳星乳罩| 91影视在线播放| 国产精品久久综合| 成人高清免费观看| 日本一区二区久久| 日韩视频久久| 亚洲欧美精品在线观看| 看电视剧不卡顿的网站| 欧美一区二区三区四区久久| 91麻豆高清视频| 亚洲精品国产第一综合99久久| 性欧美长视频| 国产一区三区三区| 91福利资源站| 天天做天天摸天天爽国产一区| 91久久极品少妇xxxxⅹ软件| 亚洲高清不卡在线| 精品福利电影| 国产精品久久看| 国产精品免费在线| 久久99久久精品| 91精彩视频在线观看| 岛国一区二区在线观看| 欧美日韩综合不卡| 日韩国产高清在线| 久久午夜电影| 亚洲成a人片在线不卡一二三区| 在线欧美视频| 六月丁香婷婷色狠狠久久| 精品国产99国产精品| 国产成人在线电影| 这里只有精品免费| 国精品一区二区| 国产精品久久夜| 麻豆亚洲精品| 成人免费视频免费观看| 日韩理论片网站| 欧美日韩精品一区二区三区四区| 日本欧美在线看| 精品国产一区二区三区忘忧草| 亚洲福利av| 国产一区二区看久久| 国产精品毛片a∨一区二区三区| 91丨porny丨首页| 一区二区三区四区亚洲| 91精品午夜视频| 欧美激情自拍| 五月综合激情日本mⅴ| 精品日产卡一卡二卡麻豆| 亚洲成人在线| 国产美女av一区二区三区| 国产精品青草综合久久久久99| 欧洲一区二区三区免费视频| 欧美日韩亚洲免费| 国产又黄又大久久| 亚洲欧美成aⅴ人在线观看| 51久久夜色精品国产麻豆| 亚洲成人自拍视频| 国产成人免费在线观看| 亚洲资源中文字幕| 久久精品91| 91在线观看美女| 奇米影视7777精品一区二区| 国产欧美日韩中文久久| 欧美在线999| 亚洲精品一区二区三| 精品影院一区二区久久久| 亚洲图片欧美激情| 日韩三级视频在线看| 每日更新成人在线视频| 91一区二区三区在线观看| 日本亚洲欧美天堂免费| 国产三级精品在线| 欧美日韩精品欧美日韩精品一综合| 99精品视频免费观看| 99在线视频精品| 久久99国产乱子伦精品免费| 日韩美女精品在线| 久久先锋影音av鲁色资源网| 91小视频在线免费看| 美女视频黄 久久| 日韩免费电影一区| 色成人在线视频| 精品9999| 99这里只有精品| 久久99精品国产麻豆不卡| 亚洲一区二区三区美女| 久久久久久久久久久久久久久99 | 性欧美暴力猛交另类hd| 欧美精品99| jizzjizzjizz欧美| 精品一区二区三区免费视频| 日韩精品免费视频人成| 依依成人精品视频| 欧美高清在线一区二区| 日韩欧美一区二区三区在线| 91国偷自产一区二区三区观看| 99热精品在线观看| 欧美阿v一级看视频| 成人免费视频一区二区| 久久精品72免费观看| 调教+趴+乳夹+国产+精品| 亚洲精品福利视频网站| 欧美高清在线精品一区| 精品盗摄一区二区三区| 欧美一区二区三区日韩视频| 色婷婷精品久久二区二区蜜臂av | 欧美日本高清视频在线观看| 一本色道久久综合亚洲精品按摩| 国产一区二区三区的电影| 色综合中文字幕国产 | 欧美理论在线播放| 91久久精品网| 美日韩精品视频| 国产精品一区二区在线观看 | 成人免费视频caoporn| 国产一区二区剧情av在线| 免费av成人在线| 日本欧洲一区二区| 日韩电影在线一区二区三区| 亚洲一区二区视频在线观看| 依依成人精品视频| 一区二区三区中文在线| 亚洲乱码国产乱码精品精的特点 | 一区二区在线看| 亚洲人成精品久久久久| 国产精品超碰97尤物18| 国产精品美女久久久久久久网站| 国产午夜精品久久久久久久| 久久久蜜桃精品| 久久亚洲二区三区| 久久久久久久久久久久久女国产乱| 精品国精品自拍自在线| 久久综合九色综合久久久精品综合 | 久久国内精品视频| 麻豆成人久久精品二区三区红| 日本午夜一本久久久综合| 青青草成人在线观看| 麻豆91在线播放| 国产美女在线精品| 福利一区二区在线| 99久久精品国产精品久久| 欧美激情亚洲| 精品999网站|