Selaa lähdekoodia

手机号登录接口

ZhangManMan 2 vuotta sitten
vanhempi
commit
84491c3015

+ 2 - 0
src/main/java/com/sky/ioc/constant/Constant.java

@@ -4,4 +4,6 @@ package com.sky.ioc.constant;
 public class Constant {
 
     public static MsgCode MSG_CODE = new MsgCode();
+
+   public final static  String PHONE_CODE = "089383";
 }

+ 6 - 0
src/main/java/com/sky/ioc/controller/system/UserController.java

@@ -51,6 +51,12 @@ public class UserController {
         return userService.logout();
     }
 
+    @ApiOperation("系统登录--手机号登录")
+    @PostMapping("/phonelogin")
+    public ReturnMsg phoneLogin(@RequestBody LoginParam loginParam) {
+        return userService.phoneLogin(loginParam.getPhone(), loginParam.getCode());
+    }
+
     public static void main(String[] args) {
         String pwd = "135246";
         System.out.println(Pbkdf2Sha256Digest.encode(pwd));

+ 2 - 0
src/main/java/com/sky/ioc/entity/params/system/LoginParam.java

@@ -7,4 +7,6 @@ public class LoginParam {
 
     private String username;
     private String password;
+    private String phone;
+    private String code;
 }

+ 2 - 0
src/main/java/com/sky/ioc/service/system/UserService.java

@@ -13,4 +13,6 @@ public interface UserService {
     ReturnMsg validate();
 
     ReturnMsg updatePassword(long userId,String oldPwd, String newPwd);
+
+    ReturnMsg phoneLogin(String phone, String code);
 }

+ 29 - 0
src/main/java/com/sky/ioc/service/system/impl/UserServiceImpl.java

@@ -2,6 +2,7 @@ package com.sky.ioc.service.system.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sky.ioc.constant.Constant;
 import com.sky.ioc.entity.domain.system.Users;
 import com.sky.ioc.entity.result.system.LoginUserVo;
 import com.sky.ioc.mapper.system.UserMapper;
@@ -93,4 +94,32 @@ public class UserServiceImpl implements UserService {
         }
 
     }
+
+    @Override
+    public ReturnMsg phoneLogin(String phone, String code) {
+        Users users = userMapper.selectOne(new LambdaQueryWrapper<Users>().eq(Users::getPhone, phone));
+        if (Objects.isNull(users)){
+            throw new RuntimeException("手机号不存在");
+        }
+        //校验验证码
+        boolean verification = code==null?false:code.equals(Constant.PHONE_CODE);
+                //Pbkdf2Sha256Digest.verification(password, users.getPassword());
+        if (!verification){
+            throw new RuntimeException("验证码错误");
+        }
+
+        // 认证成功
+        LoginUserVo loginUser = new LoginUserVo();
+        BeanUtils.copyProperties(users, loginUser);
+
+        String token = JwtUtil.genJwtToken(users);
+
+        // 将用户信息存入redis
+        redisUtil.put("login:"+loginUser.getUserName(), loginUser);
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("userInfo", loginUser);
+        jsonObject.put("token", token);
+        return ReturnMsg.ok(jsonObject, "登录成功");
+    }
 }