From 48735eec10ae9819fbf02ea72293775b819668ac Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Mon, 5 Sep 2022 17:28:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mdd/front/config/FrontConfig.java | 6 +++++ .../mdd/front/controller/LoginController.java | 12 ++++++++-- .../front/service/impl/LoginServiceImpl.java | 23 +++++++++++++++---- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java b/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java index a09014d5..c7e2f256 100644 --- a/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java +++ b/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java @@ -5,6 +5,12 @@ package com.mdd.front.config; */ public class FrontConfig { + // 登录缓存键 + public static final String frontendTokenKey = "frontend:token:"; + + // 短信验证码 + public static final String frontendSmsCode = "frontend:smsCode:"; + // 免登录验证 public static String[] notLoginUri = new String[]{ "/api/login" diff --git a/server/like-front/src/main/java/com/mdd/front/controller/LoginController.java b/server/like-front/src/main/java/com/mdd/front/controller/LoginController.java index c82f027e..d9f04932 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/LoginController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/LoginController.java @@ -12,6 +12,9 @@ import javax.annotation.Resource; import java.util.LinkedHashMap; import java.util.Map; +/** + * 登录管理 + */ @RestController @RequestMapping("/api/login") public class LoginController { @@ -32,10 +35,16 @@ public class LoginController { return AjaxResult.success(); } + /** + * 登录验证 + * + * @author fzr + * @param params 参数 + * @return Object + */ @PostMapping("/check") public Object check(@RequestBody Map params) { Assert.notNull(params.get("scene"), "scene参数缺失!"); - Map map = new LinkedHashMap<>(); switch (params.get("scene")) { case "mnp": @@ -48,7 +57,6 @@ public class LoginController { map = iLoginService.accountLogin(params); break; } - return AjaxResult.success(map); } diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java index 30af5cfb..8612b0e9 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java @@ -12,10 +12,8 @@ import com.mdd.common.enums.ClientEnum; import com.mdd.common.exception.OperateException; import com.mdd.common.mapper.user.UserAuthMapper; import com.mdd.common.mapper.user.UserMapper; -import com.mdd.common.utils.ConfigUtil; -import com.mdd.common.utils.IpUtil; -import com.mdd.common.utils.StringUtil; -import com.mdd.common.utils.ToolsUtil; +import com.mdd.common.utils.*; +import com.mdd.front.config.FrontConfig; import com.mdd.front.service.ILoginService; import com.mdd.front.validate.RegisterParam; import me.chanjar.weixin.common.error.WxErrorException; @@ -163,6 +161,8 @@ public class LoginServiceImpl implements ILoginService { } String token = ToolsUtil.makeToken(); + RedisUtil.set(FrontConfig.frontendTokenKey+token, user.getId(), 7200); + Map response = new LinkedHashMap<>(); response.put("id", userId); response.put("token", token); @@ -183,13 +183,22 @@ public class LoginServiceImpl implements ILoginService { public Map mobileLogin(Map params) { Assert.notNull(params.get("mobile"), "mobile参数缺失!"); Assert.notNull(params.get("code"), "code参数缺失!"); + String mobile = params.get("mobile"); + String code = params.get("code").toLowerCase(); // 校验验证码 + Object smsCode = RedisUtil.get(FrontConfig.frontendSmsCode+mobile); + if (StringUtil.isNull(smsCode) || !smsCode.toString().equals(code)) { + throw new OperateException("验证码错误!"); + } + + // 删除验证码 + RedisUtil.del(FrontConfig.frontendSmsCode+code); // 查询手机号 User user = userMapper.selectOne(new QueryWrapper() .select("id,username,mobile,is_disable") - .eq("mobile", params.get("mobile")) + .eq("mobile", mobile) .eq("is_delete", 0) .last("limit 1")); @@ -197,6 +206,8 @@ public class LoginServiceImpl implements ILoginService { Assert.isFalse(user.getIsDisable() != 0, "账号已禁用!"); String token = ToolsUtil.makeToken(); + RedisUtil.set(FrontConfig.frontendTokenKey+token, user.getId(), 7200); + Map response = new LinkedHashMap<>(); response.put("id", user.getId()); response.put("token", token); @@ -229,6 +240,8 @@ public class LoginServiceImpl implements ILoginService { Assert.isFalse(user.getIsDisable() != 0, "账号已被禁用!"); String token = ToolsUtil.makeToken(); + RedisUtil.set(FrontConfig.frontendTokenKey+token, user.getId(), 7201); + Map response = new LinkedHashMap<>(); response.put("id", user.getId()); response.put("token", token);