package com.panzhihua.auth.service.impl;
|
|
import com.panzhihua.auth.service.LoginService;
|
import com.panzhihua.common.constants.TokenConstant;
|
import com.panzhihua.common.model.vos.LoginReturnVO;
|
import com.panzhihua.common.utlis.JWTTokenUtil;
|
import com.panzhihua.common.constants.UserConstants;
|
import com.panzhihua.common.model.vos.LoginUserInfoVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.ValueOperations;
|
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
import org.springframework.security.core.Authentication;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: token
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-11-19 17:07
|
**/
|
@Service
|
public class LoginServiceImpl implements LoginService {
|
@Resource
|
private AuthenticationManager authenticationManager;
|
@Autowired
|
private StringRedisTemplate redisTemplate;
|
|
/**
|
* 微信小程序登录
|
*
|
* @param openId 微信标识
|
* @return jwt
|
*/
|
@Override
|
public LoginReturnVO loginApplets(String openId) {
|
Authentication authentication = null;
|
authentication = authenticationManager
|
.authenticate(new UsernamePasswordAuthenticationToken(openId+"_1", UserConstants.PASSWORD));
|
LoginUserInfoVO loginUser = (LoginUserInfoVO) authentication.getPrincipal();
|
String token = JWTTokenUtil.generateToken(loginUser);
|
String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
|
LoginReturnVO loginReturnVO=new LoginReturnVO();
|
loginReturnVO.setToken(token);
|
loginReturnVO.setRefreshToken(refeshToken);
|
return loginReturnVO;
|
}
|
|
/**
|
* 小程序用户登出
|
*
|
* @param token 登录用户token
|
*/
|
@Override
|
public void logoutApplets(String token) {
|
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
|
token= token.replaceAll(TokenConstant.TOKEN_PRE,"");
|
valueOperations.set(UserConstants.LOGOUT_TOKEN+token,token, TokenConstant.EXPIRETIME, TimeUnit.MINUTES);
|
}
|
|
/**
|
* 运营后台登录
|
*
|
* @param account 账户
|
* @param password 密码
|
* @return 登录结果
|
*/
|
@Override
|
public LoginReturnVO loginAppletsBackStage(String account, String password) {
|
Authentication authentication = null;
|
authentication = authenticationManager
|
.authenticate(new UsernamePasswordAuthenticationToken(account+"_2", password));
|
LoginUserInfoVO loginUser = (LoginUserInfoVO) authentication.getPrincipal();
|
String token = JWTTokenUtil.generateToken(loginUser);
|
String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
|
LoginReturnVO loginReturnVO=new LoginReturnVO();
|
loginReturnVO.setToken(token);
|
loginReturnVO.setRefreshToken(refeshToken);
|
return loginReturnVO;
|
}
|
|
/**
|
* 社区后台登录
|
*
|
* @param account 账户
|
* @param password 密码
|
* @return 登录结果
|
*/
|
@Override
|
public LoginReturnVO loginCommunityBackage(String account, String password) {
|
Authentication authentication = null;
|
authentication = authenticationManager
|
.authenticate(new UsernamePasswordAuthenticationToken(account+"_3", password));
|
LoginUserInfoVO loginUser = (LoginUserInfoVO) authentication.getPrincipal();
|
String token = JWTTokenUtil.generateToken(loginUser);
|
String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
|
LoginReturnVO loginReturnVO=new LoginReturnVO();
|
loginReturnVO.setToken(token);
|
loginReturnVO.setRefreshToken(refeshToken);
|
return loginReturnVO;
|
}
|
|
/**
|
* 商家后台登录
|
*
|
* @param account 账户
|
* @param password 密码
|
* @return 登录结果
|
*/
|
@Override
|
public LoginReturnVO loginShopBackStage(String account, String password) {
|
Authentication authentication = null;
|
authentication = authenticationManager
|
.authenticate(new UsernamePasswordAuthenticationToken(account+"_5", password));
|
LoginUserInfoVO loginUser = (LoginUserInfoVO) authentication.getPrincipal();
|
String token = JWTTokenUtil.generateToken(loginUser);
|
String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
|
LoginReturnVO loginReturnVO=new LoginReturnVO();
|
loginReturnVO.setToken(token);
|
loginReturnVO.setRefreshToken(refeshToken);
|
return loginReturnVO;
|
}
|
|
}
|