Commit 0bcceabd authored by 董建华's avatar 董建华

登出接口

parent 7bde5dec
......@@ -465,25 +465,13 @@ public class UserController implements IBaseController {
/**
* 登出接口
*
* @param channelId
* @param appChannel
* @param createdFrom
* @param key
* @param phoneNo
* @return
*/
@RequestMapping("/logout")
public JsonResult logout(
@RequestParam(required = false, defaultValue = "1") Long channelId, String appChannel,
@RequestParam(required = false, defaultValue = "1") Long createdFrom,
@RequestParam(required = false, defaultValue = "xyqb") String key,
@RequestParam(name = "phoneNo") String phoneNo) {
Merchant merchant = merchantService.findMerchantByName(key);
if (merchant == null) {
return JsonResult.buildErrorStateResult("未知的连接", null);
}
userService.logout(channelId, appChannel, createdFrom, merchant, phoneNo);
public JsonResult logout(HttpServletRequest request) {
String token = request.getHeader("x-auth-token");
userService.logout(token);
return JsonResult.buildSuccessResult("登出成功");
}
......
......@@ -39,9 +39,7 @@ public interface ISessionService {
/**
* 删除会话
* @param user
* @param loginProperties
*/
void deleteSession(User user, LoginProperties loginProperties);
void deleteSession(String token);
}
......@@ -252,30 +252,24 @@ public class SessionServiceImpl implements ISessionService {
}
@Override
public void deleteSession(User user, LoginProperties loginProperties) {
String sessionId = findSessionIdByUserIdLoginProperties(user.getId(), loginProperties);
SessionStruct sessionStruct = null;
public void deleteSession(String token) {
if (null != sessionId) {
if (StringUtils.length(sessionId) == Constants.TOKEN_LENGTH) {
SessionStruct sessionStruct = findSessionBySessionId(token);
sessionStruct = findSessionBySessionId(sessionId);
if (null != sessionStruct) {
if (null != sessionStruct) {
stringRedisTemplate.delete(Constants.Session.USER_SESSION_CACHE + sessionStruct.getSid());
stringRedisTemplate.delete(Constants.Session.USER_SESSION_CACHE + sessionStruct.getSid());
SessionValue values = sessionStruct.getValues();
SessionValue values = sessionStruct.getValues();
String key = generateLoginPropertiesKey(values.getUser().getId(), values.getLoginProperties());
User user = values.getUser();
stringRedisTemplate.delete(key);
String key = generateLoginPropertiesKey(user.getId(), values.getLoginProperties());
}
} else {
log.warn("真的会有这种情况吗?应该是不存在吧user:{},sessionId:{} ", user, sessionId);
}
}
stringRedisTemplate.delete(key);
log.info("登出成功token:{} , user: {}", token, user);
}
}
/**
......
......@@ -99,5 +99,5 @@ public interface IUserService {
/**
* 登出
*/
void logout(Long channelId, String appChannel, Long createdFrom,Merchant merchant, String phoneNo);
void logout(String token);
}
......@@ -459,19 +459,8 @@ public class UserServiceImpl implements IUserService, IBaseController {
}
@Override
public void logout(Long channelId, String appChannel, Long createdFrom, Merchant merchant, String phoneNo) {
User user = findByPhoneWithCache(phoneNo);
public void logout(String token) {
if (null == user) {
throw new UserNotExistException("用户未找到");
}
LoginProperties properties = LoginProperties.builder()
.channelId(channelId)
.createdFrom(createdFrom)
.appChannel(appChannel)
.merchantId(merchant.getId())
.merchantName(merchant.getName())
.build();
sessionService.deleteSession(user, properties);
sessionService.deleteSession(token);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment