Commit 8e007019 by 袁伟铭

添加token登录方法

parent 3d46a931
......@@ -31,11 +31,17 @@ public class SingleController {
@ApiOperation("单点登录")
@AnonymousPostMapping(value = "/login")
public void login(@RequestBody SingleLoginVo vo, HttpServletRequest request, HttpServletResponse response) {
public ResultVo login(@RequestBody SingleLoginVo vo, HttpServletRequest request, HttpServletResponse response) {
AssertUtils.hasText(vo.getUsername(), "用户名为空");
AssertUtils.hasText(vo.getPasswd(), "密码为空");
singleService.login(vo, request, response);
return ResultVo.success(singleService.login(vo, request, response));
}
@ApiOperation("token单点登录")
@PostMapping(value = "/tokenLogin")
public ResultVo tokenLogin(HttpServletRequest request, HttpServletResponse response) {
return ResultVo.success(singleService.tokenLogin(request, response));
}
@ApiOperation("单点登出")
......
package com.zq.system.modules.system.service;
import cn.hutool.core.util.IdUtil;
import cn.hutool.extra.servlet.ServletUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
......@@ -143,7 +142,7 @@ public class SingleService {
}
}
public void login(SingleLoginVo vo, HttpServletRequest request, HttpServletResponse response) {
public Object login(SingleLoginVo vo, HttpServletRequest request, HttpServletResponse response) {
try {
String appId = request.getParameter("appId");
AssertUtils.hasText(appId, "APPID为空");
......@@ -167,14 +166,36 @@ public class SingleService {
String key = IdUtil.simpleUUID();
redisUtils.setStr(token, key, properties.getTokenValidityInSeconds() / 1000, TimeUnit.SECONDS);
response.sendRedirect(sysInfo.getHomeUrl() + "?" + properties.getHeader() + "=" + token + "&key=" + key);
Map<String, Object> data = new HashMap<>();
data.put("toUrl", sysInfo.getHomeUrl() + "?" + properties.getHeader() + "=" + token + "&key=" + key);
data.put(properties.getHeader(), properties.getTokenStartWith() + token);
return data;
// response.sendRedirect(sysInfo.getHomeUrl() + "?" + properties.getHeader() + "=" + token + "&key=" + key);
} catch (Exception e) {
log.error("【{}】单点登录错误 => {}", vo.getUsername(), e.getMessage());
ServletUtil.write(response, e.getMessage(), "application/json;charset=utf-8");
return e.getMessage();
}
}
public Object tokenLogin(HttpServletRequest request, HttpServletResponse response) {
String appId = request.getParameter("appId");
AssertUtils.hasText(appId, "APPID为空");
SysInfo sysInfo = sysInfoDao.selectOne(Wrappers.lambdaQuery(SysInfo.builder().appId(appId).build()));
AssertUtils.notNull(sysInfo, "APPID不存在");
AssertUtils.hasText(sysInfo.getHomeUrl(), "业务系统主页地址未配置");
String token = tokenProvider.getToken(request);
String key = redisUtils.getStr(token);
Map<String, Object> data = new HashMap<>();
data.put("toUrl", sysInfo.getHomeUrl() + "?" + properties.getHeader() + "=" + token + "&key=" + key);
data.put(properties.getHeader(), properties.getTokenStartWith() + token);
return data;
// response.sendRedirect(sysInfo.getHomeUrl() + "?" + properties.getHeader() + "=" + token + "&key=" + key);
}
public Object getUserInfo(String appId) {
OnlineUserDto adminContext = ContextUtils.getAdminContext();
......
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