123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package com.fdkankan.manage.service.impl;
- import cn.dev33.satoken.stp.SaLoginConfig;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.extra.servlet.ServletUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.fdkankan.manage.common.ResultCode;
- import com.fdkankan.common.util.Base64Converter;
- import com.fdkankan.common.util.SecurityUtil;
- import com.fdkankan.manage.common.RedisKeyUtil;
- import com.fdkankan.manage.common.ResultCode;
- import com.fdkankan.manage.exception.BusinessException;
- import com.fdkankan.manage.service.ISysUserService;
- import com.fdkankan.manage.service.IUserService;
- import com.fdkankan.manage.vo.request.ManageLoginRequest;
- 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;
- import javax.servlet.http.HttpServletRequest;
- @Service
- public class ManageService {
- @Autowired
- IUserService userService;
- @Autowired
- RedisUtil redisUtil;
- public ManageLoginResponse login(String ip,String userName, String password) {
- if(StringUtils.isBlank(userName) || StringUtils.isBlank(password)){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- //对前端传的密码解密
- String passwordMd5 = Base64Converter.decode(Base64Converter.subText(password));
- ManageLoginResponse result = userService.getUserByUserNameAndPassword(userName,passwordMd5);
- if(result == null){
- throw new BusinessException(ResultCode.PASSWORD_ERROR);
- }
- if(result.getStatus() == 0){
- throw new BusinessException(ResultCode.USERNAME_ERROR);
- }
- 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(RedisKeyUtil.loginToken ,result.getToken()), JSONObject.toJSONString(result), 2 * 60 * 60);
- redisUtil.set(RedisKeyUtil.loginTokenUser+userName, result.getToken(),2 * 60 * 60);
- return result;
- }
- public void logout() {
- redisUtil.del(String.format(RedisKeyUtil.loginToken ,StpUtil.getTokenValue()));
- StpUtil.logout();
- }
- }
|