疯狂的狮子Li
2023-06-05 ffedfd89a1b3588a21fbc8b3042f6b628eb144ca
update 优化 !pr363 支持本地虚拟域名调试
已修改1个文件
28 ■■■■ 文件已修改
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
@@ -2,6 +2,9 @@
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.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 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 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 @@
        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);