亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

詳解基于JWT的springboot權限驗證技術實現

瀏覽:4日期:2023-04-11 18:05:48

JWT簡介

Json Web Token(JWT):JSON網絡令牌,是為了在網絡應用環境間傳遞聲明而制定的一種基于JSON的開放標準((RFC 7519)。JWT是一個輕便的安全跨平臺傳輸格式,定義了一個緊湊的自包含的方式用于通信雙方之間以 JSON 對象行使安全的傳遞信息。因為數字簽名的存在,這些信息是可信的。

實現步驟:

環境spring boot

1、添加jwt依賴

<dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.8.1</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency>

2、在src下創建annotation包

新建自定義注解類 JwtToken

package com.qf.tyleryue_one.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 自定義注解:方法前 表示方法需要攔截 */@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface JwtToken {}

3、在src下創建utils包

新建自定義JwtUtils工具類

package com.qf.tyleryue_one.utils;import com.auth0.jwt.JWT;import com.auth0.jwt.JWTCreator;import com.auth0.jwt.JWTVerifier;import com.auth0.jwt.algorithms.Algorithm;import jdk.internal.org.objectweb.asm.TypeReference;import java.util.Date;/** * 用來生成簽名,校驗簽名,通過簽名 */public class JwtUtils { //令牌有效時間 private final static long EXPIRE_TIME=5*60*1000; //密鑰 private final static String SECRECT='Tyler_Yue_key'; /** * 創建令牌 */ public static String sign(String userId){ //構建失效時鐘 Date exipre_date = new Date(System.currentTimeMillis() + EXPIRE_TIME); //創建令牌 JWTCreator.Builder builder = JWT.create(); //給jwt令牌playload中放入發令牌放的用戶 //給userid用戶發令牌 builder.withAudience(userId); //設置令牌失效時間 builder.withExpiresAt(exipre_date); //對令牌密鑰進行加密 Algorithm algorithm = Algorithm.HMAC256(SECRECT); String sign = builder.sign(algorithm); return sign;//返回令牌 } /** * 驗證令牌 */ public static boolean verifyToken(String token){ try { //生成校驗器 Algorithm algorithm = Algorithm.HMAC256(SECRECT); //校驗 JWTVerifier build = JWT.require(algorithm).build(); //無異常則校驗成功 return true; } catch (Exception e) { throw new RuntimeException('令牌過期'); } }}

4、在src下新建vo包

封裝一個返回用戶帶令牌的 對象

package com.qf.tyleryue_one.vo;import com.alibaba.druid.filter.AutoLoad;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;/** * 封裝一個返回 含令牌的用戶對象 */@Data@AllArgsConstructor@NoArgsConstructorpublic class TokenVo { //用戶名 private String usernaem; //令牌名 private String token;}

5、舉例controller層用戶登錄業務登錄帶令牌

package com.qf.tyleryue_one.controller;import com.qf.tyleryue_one.entity.VueUser;import com.qf.tyleryue_one.service.VueUserService;import com.qf.tyleryue_one.utils.JwtUtils;import com.qf.tyleryue_one.vo.Msg;import com.qf.tyleryue_one.vo.TokenVo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import java.util.UUID;/** * 登錄業務 */@Controllerpublic class VueUserController { @Autowired private VueUserService vueUserService; @RequestMapping(value = '/dealLogin',method = RequestMethod.POST) @CrossOrigin @ResponseBody public Msg login(@RequestBody VueUser vueUser){ VueUser vueUser1 = vueUserService.selectByUsername(vueUser.getUsername()); if (vueUser1!=null){ if (vueUser1.getPassword().equals(vueUser.getPassword())){//密碼匹配,發放令牌///隨機生成字符串未useridString userid = UUID.randomUUID().toString();String token = JwtUtils.sign(userid);//封裝令牌對象TokenVo tokenVo = new TokenVo(vueUser.getUsername(), token);return new Msg(200,'登錄成功,令牌已發放',tokenVo); }else {return new Msg(403,'密碼錯誤',null); } }else { return new Msg(403,'用戶不存在',null); } }}

到此這篇關于詳解基于JWT的springboot權限驗證技術實現的文章就介紹到這了,更多相關springboot JWT權限驗證內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 成人午夜大片免费看爽爽爽 | 亚洲精品午夜级久久久久 | 成人免费观看国产高清 | 国产精品久久久久久久免费大片 | 午夜国产福利在线 | 午夜毛片不卡高清免费 | 免费观看黄a一级视频 | 麻豆一区二区免费播放网站 | 免费观看黄色a一级录像 | 激情婷婷综合 | 亚洲欧美色综合一区二区在线 | 蜜桃臀在线成人亚洲 | 久久www免费人成精品香蕉 | 亚洲欧美在线视频 | 成人性色生活片免费看爆迷你 | 91精品一区二区三区在线 | 来个黄色网址 | 俄罗斯欧美色黄激情 | 色在线免费 | 色y视频| 在线观看免费精品国产 | 日本免费va毛片在线 | 无耻三级在线观看 | 国产亚洲小视频 | 激情久久免费视频 | 久久国产精品亚洲va麻豆 | 国产福利在线观看永久免费 | 91福利区 | 国产精品福利视频主播真会玩 | 视频二区| 欧美一区二区三区免费不卡 | 在线亚洲精品自拍 | 免费高清精品国偷自产在线 | 欧亚精品一区二区三区 | 99久久国产综合精品网成人影院 | 伊人看片 | 国产精品毛片在线大全 | 国产精品一区二区三区四区 | 韩国一大片a毛片女同 | 久久精品视频免费播放 | 久久精品国产一区二区三区 |