|
|
|
@ -2,6 +2,9 @@ package org.dromara.web.controller;
|
|
|
|
|
|
|
|
|
|
import cn.dev33.satoken.annotation.SaIgnore;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
|
|
import jakarta.validation.constraints.NotBlank;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
|
|
import org.dromara.common.core.domain.model.EmailLoginBody;
|
|
|
|
|
import org.dromara.common.core.domain.model.LoginBody;
|
|
|
|
@ -20,9 +23,6 @@ import org.dromara.web.domain.vo.LoginVo;
|
|
|
|
|
import org.dromara.web.domain.vo.TenantListVo;
|
|
|
|
|
import org.dromara.web.service.SysLoginService;
|
|
|
|
|
import org.dromara.web.service.SysRegisterService;
|
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
|
|
import jakarta.validation.constraints.NotBlank;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
@ -74,8 +74,10 @@ public class AuthController {
|
|
|
|
|
public R<LoginVo> smsLogin(@Validated @RequestBody SmsLoginBody body) {
|
|
|
|
|
LoginVo loginVo = new LoginVo();
|
|
|
|
|
// 生成令牌
|
|
|
|
|
String token =
|
|
|
|
|
loginService.smsLogin(body.getTenantId(), body.getPhonenumber(), body.getSmsCode());
|
|
|
|
|
String token = loginService.smsLogin(
|
|
|
|
|
body.getTenantId(),
|
|
|
|
|
body.getPhonenumber(),
|
|
|
|
|
body.getSmsCode());
|
|
|
|
|
loginVo.setToken(token);
|
|
|
|
|
return R.ok(loginVo);
|
|
|
|
|
}
|
|
|
|
@ -90,8 +92,10 @@ public class AuthController {
|
|
|
|
|
public R<LoginVo> emailLogin(@Validated @RequestBody EmailLoginBody body) {
|
|
|
|
|
LoginVo loginVo = new LoginVo();
|
|
|
|
|
// 生成令牌
|
|
|
|
|
String token =
|
|
|
|
|
loginService.emailLogin(body.getTenantId(), body.getEmail(), body.getEmailCode());
|
|
|
|
|
String token = loginService.emailLogin(
|
|
|
|
|
body.getTenantId(),
|
|
|
|
|
body.getEmail(),
|
|
|
|
|
body.getEmailCode());
|
|
|
|
|
loginVo.setToken(token);
|
|
|
|
|
return R.ok(loginVo);
|
|
|
|
|
}
|
|
|
|
@ -142,19 +146,17 @@ public class AuthController {
|
|
|
|
|
List<SysTenantVo> tenantList = tenantService.queryList(new SysTenantBo());
|
|
|
|
|
List<TenantListVo> voList = MapstructUtils.convert(tenantList, TenantListVo.class);
|
|
|
|
|
// 获取域名
|
|
|
|
|
String host = "";
|
|
|
|
|
String host;
|
|
|
|
|
String referer = request.getHeader("referer");
|
|
|
|
|
if (StringUtils.isNotBlank(referer)) {
|
|
|
|
|
//这里从referer中取值是为了本地使用hosts添加虚拟域名,方便本地环境调试
|
|
|
|
|
// 这里从referer中取值是为了本地使用hosts添加虚拟域名,方便本地环境调试
|
|
|
|
|
host = referer.split("//")[1].split("/")[0];
|
|
|
|
|
} else {
|
|
|
|
|
host = new URL(request.getRequestURL().toString()).getHost();
|
|
|
|
|
}
|
|
|
|
|
// 根据域名进行筛选
|
|
|
|
|
String finalHost = host;
|
|
|
|
|
List<TenantListVo> list =
|
|
|
|
|
StreamUtils.filter(voList, vo -> StringUtils.equals(vo.getDomain(),
|
|
|
|
|
finalHost));
|
|
|
|
|
List<TenantListVo> list = StreamUtils.filter(voList, vo ->
|
|
|
|
|
StringUtils.equals(vo.getDomain(), host));
|
|
|
|
|
// 返回对象
|
|
|
|
|
LoginTenantVo vo = new LoginTenantVo();
|
|
|
|
|
vo.setVoList(CollUtil.isNotEmpty(list) ? list : voList);
|
|
|
|
|