mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	update 优化 !pr363 支持本地虚拟域名调试
This commit is contained in:
		@@ -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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user