package com.fdkankan.manage.service.impl; import cn.dev33.satoken.stp.SaLoginConfig; import cn.dev33.satoken.stp.StpUtil; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.common.util.Base64Converter; import com.fdkankan.common.util.SecurityUtil; import com.fdkankan.manage.service.ISysUserService; import com.fdkankan.manage.vo.response.ManageLoginResponse; import com.fdkankan.redis.constant.RedisKey; import com.fdkankan.redis.util.RedisUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class ManageService { @Autowired ISysUserService sysUserService; @Autowired RedisUtil redisUtil; public ManageLoginResponse login(String userName, String password) { if(StringUtils.isBlank(userName) || StringUtils.isBlank(password)){ throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS); } //对前端传的密码解密 String passwordMd5 = SecurityUtil.MD52(Base64Converter.decode(Base64Converter.subText(password))); ManageLoginResponse result = sysUserService.getUserByUserNameAndPassword(userName, passwordMd5); StpUtil.login(result.getId(), SaLoginConfig .setExtra("userId",result.getId()) .setExtra("isAdmin",1) .setExtra("userName",result.getUserName()) .setExtra("nickName",result.getNickName())); result.setToken(StpUtil.getTokenValue()); redisUtil.set(String.format(RedisKey.TOKEN_V3 ,result.getToken()), "1", 216000); return result; } public void logout() { redisUtil.del(String.format(RedisKey.TOKEN_V3 ,StpUtil.getTokenValue())); StpUtil.logout(); } }