package org.example.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.example.common.ServerResponse; import org.example.pojo.User; import org.example.server.impl.UserServiceImpl; import org.example.util.MD5Util; import org.example.util.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.security.SecureRandom; import java.util.Base64; import java.util.Date; /** * @program: demo * @description: * @create: 2024-07-29 11:42 **/ @RestController @RequestMapping("/admin") public class AdminLogin { @Autowired private UserServiceImpl userService; @PostMapping("/login") public ServerResponse saveUser(@RequestParam("account") int account , @RequestParam("password") String password) { User user = userService.getOne(new LambdaQueryWrapper().eq(User::getAccount, account).eq(User::getIsRoot,1)); if(null == user){ return ServerResponse.createBySuccessMsg("管理员账号不存在"); } if (!MD5Util.verify(password, user.getPassword())) { return ServerResponse.createBySuccessMsg("密码错误"); } String token = generateToken(); RedisUtil.set(user.getAccount(),token); return ServerResponse.createBySuccess(token); } // 生成指定长度的随机 token public static String generateToken() { SecureRandom secureRandom = new SecureRandom(); byte[] token = new byte[16]; secureRandom.nextBytes(token); return Base64.getUrlEncoder().withoutPadding().encodeToString(token); } }