From e5e0c98e171b8cccc0b8e6c824050071dc287565 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 30 Nov 2025 15:45:45 +0800 Subject: [PATCH] =?UTF-8?q?tlias=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F--?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=A0=A1=E9=AA=8C-=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=94=9F=E6=88=90=E5=B9=B6=E4=B8=8B=E5=8F=91?= =?UTF-8?q?JWT=E4=BB=A4=E7=89=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/controller/LoginController.java | 17 +++++++- .../main/java/com/inmind/utils/JwtUtils.java | 40 +++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 tlias-web-management/src/main/java/com/inmind/utils/JwtUtils.java diff --git a/tlias-web-management/src/main/java/com/inmind/controller/LoginController.java b/tlias-web-management/src/main/java/com/inmind/controller/LoginController.java index ae0a6c6..f6fb1a3 100644 --- a/tlias-web-management/src/main/java/com/inmind/controller/LoginController.java +++ b/tlias-web-management/src/main/java/com/inmind/controller/LoginController.java @@ -3,12 +3,18 @@ package com.inmind.controller; import com.inmind.pojo.Emp; import com.inmind.pojo.Result; import com.inmind.service.EmpService; +import com.inmind.utils.JwtUtils; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.util.HashMap; +import java.util.Map; + @RestController @Slf4j public class LoginController { @@ -21,7 +27,16 @@ public class LoginController { //调用业务层的登录操作 Emp e = empService.login(emp); //此时要根据返回的数据,进行登录成功和失败的判断 + if (e != null) { + //生成令牌并下发 + Map claims = new HashMap<>(); + claims.put("id", e.getId()); + claims.put("username", e.getUsername()); + claims.put("name", e.getName()); + String jwt = JwtUtils.generateJwt(claims); + return Result.success(jwt); + } - return e == null? Result.error("用户名或密码错误"):Result.success(); + return Result.error("用户名或密码错误"); } } diff --git a/tlias-web-management/src/main/java/com/inmind/utils/JwtUtils.java b/tlias-web-management/src/main/java/com/inmind/utils/JwtUtils.java new file mode 100644 index 0000000..b89c61e --- /dev/null +++ b/tlias-web-management/src/main/java/com/inmind/utils/JwtUtils.java @@ -0,0 +1,40 @@ +package com.inmind.utils; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import java.util.Date; +import java.util.Map; + +public class JwtUtils { + + private static String signKey = "inmind"; + private static Long expire = 43200000L; + + /** + * 生成JWT令牌 + * @param claims JWT第二部分负载 payload 中存储的内容 + * @return + */ + public static String generateJwt(Map claims){ + String jwt = Jwts.builder() + .addClaims(claims) + .signWith(SignatureAlgorithm.HS256, signKey) + .setExpiration(new Date(System.currentTimeMillis() + expire)) + .compact(); + return jwt; + } + + /** + * 解析JWT令牌 + * @param jwt JWT令牌 + * @return JWT第二部分负载 payload 中存储的内容 + */ + public static Claims parseJWT(String jwt){ + Claims claims = Jwts.parser() + .setSigningKey(signKey) + .parseClaimsJws(jwt) + .getBody(); + return claims; + } +}