فهرست منبع

二维码登录调整

dzx 1 سال پیش
والد
کامیت
d45c5bde60
1فایلهای تغییر یافته به همراه13 افزوده شده و 2 حذف شده
  1. 13 2
      src/main/java/com/xjrsoft/module/system/controller/LoginController.java

+ 13 - 2
src/main/java/com/xjrsoft/module/system/controller/LoginController.java

@@ -108,6 +108,7 @@ public class LoginController {
             LoginQRCodeVo loginQRCodeVo = new LoginQRCodeVo();
             loginQRCodeVo.setImgBase64(base64);
             long loginCode = IdUtil.getSnowflakeNextId();
+            redisUtil.set(loginCode + "time", System.currentTimeMillis());
             loginQRCodeVo.setLoginCode(loginCode + "");
             return RT.ok(loginQRCodeVo);
         } catch (Exception e) {
@@ -118,8 +119,18 @@ public class LoginController {
     @PostMapping("/QR-code-login")
     @ApiOperation(value = "二维码登录", notes = "code")
     @XjrLog(value = "二维码登录")
-    public R loginQRCode(@RequestBody @Valid LoginQRCodeDto dto) throws Exception {
-        return R.ok(loginService.loginQRCode(dto));
+    public RT<String> loginQRCode(@RequestBody @Valid LoginQRCodeDto dto) throws Exception {
+        Long timestamp = redisUtil.get(dto.getLoginCode() + "time", Long.class);
+        long timeMillis = System.currentTimeMillis();
+        if(timeMillis - timestamp > 300000){
+            return RT.error("二维码失效,请刷新重试");
+        }
+        Boolean b = loginService.loginQRCode(dto);
+        if(b){
+            return RT.ok("登录成功");
+        }
+
+        return RT.ok("登录失败,未能绑定微信公众号");
     }
 
     @PostMapping("/check-QR-code-login")