From a52f6bffc0a8426a192c669006588ddcd0205f7f Mon Sep 17 00:00:00 2001 From: seesaw Date: Wed, 23 Oct 2024 10:11:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/service/user/MemberUserServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index 89e09935..d83e7a0d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -911,16 +911,16 @@ public class MemberUserServiceImpl implements MemberUserService { @Override public String getQRCode() { Long userId = getLoginUserId(); - String redisKey = QRCodeWithJWTUtil.QR_PREFIX+userId; - String url = memberUserRedisTemplate.opsForValue().get(redisKey); - if(StrUtil.isNotEmpty(url)){ - return url; - } +// String redisKey = QRCodeWithJWTUtil.QR_PREFIX+userId; +// String url = memberUserRedisTemplate.opsForValue().get(redisKey); +// if(StrUtil.isNotEmpty(url)){ +// return url; +// } String encode = DigestUtil.md5Hex(userId.toString()+System.currentTimeMillis()); String fileName = "QRCode_" + userId + ".png"; String path = QRCodeWithJWTUtil.BASE_PATH+fileName; QRCodeWithJWTUtil.generateQRCode(encode, 350, 350, path); // 生 - memberUserRedisTemplate.opsForValue().set(redisKey,path,180, TimeUnit.SECONDS); +// memberUserRedisTemplate.opsForValue().set(redisKey,path,180, TimeUnit.SECONDS); memberUserRedisTemplate.opsForValue().set(encode,userId.toString(),180, TimeUnit.SECONDS); return path; } From 824527fbc3905eddb89ebba5e1bfa11605fd82fc Mon Sep 17 00:00:00 2001 From: seesaw Date: Wed, 23 Oct 2024 10:37:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/user/MemberUserServiceImpl.java | 4 ++-- .../module/member/util/QRCodeWithJWTUtil.java | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index d83e7a0d..51bca02e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -919,9 +919,9 @@ public class MemberUserServiceImpl implements MemberUserService { String encode = DigestUtil.md5Hex(userId.toString()+System.currentTimeMillis()); String fileName = "QRCode_" + userId + ".png"; String path = QRCodeWithJWTUtil.BASE_PATH+fileName; - QRCodeWithJWTUtil.generateQRCode(encode, 350, 350, path); // 生 + String s = QRCodeWithJWTUtil.generateQRCode(encode, 350, 350, path);// 生 // memberUserRedisTemplate.opsForValue().set(redisKey,path,180, TimeUnit.SECONDS); memberUserRedisTemplate.opsForValue().set(encode,userId.toString(),180, TimeUnit.SECONDS); - return path; + return s; } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java index 377adf39..64cb56e8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java @@ -9,9 +9,13 @@ import cn.hutool.json.JSONUtil; import cn.hutool.jwt.JWTUtil; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; import java.io.File; import java.time.LocalDateTime; +import java.util.Base64; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -47,8 +51,18 @@ public class QRCodeWithJWTUtil { } // 生成二维码图片 - public static void generateQRCode(String data, int width, int height, String filePath) { - QrCodeUtil.generate(data, width, height, new File(filePath)); + public static String generateQRCode(String data, int width, int height, String filePath) { + BufferedImage generate = QrCodeUtil.generate(data, width, height); + + try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { + ImageIO.write(generate, "png", baos); + byte[] imageBytes = baos.toByteArray(); + return "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } // 验证JWT是否有效和未过期