feat: 新增租户管理端 TenantApi 并移除旧 API
This commit is contained in:
@@ -90,7 +90,14 @@ public sealed class TenantResolutionMiddleware(
|
||||
{
|
||||
var request = context.Request;
|
||||
|
||||
// 1. Header 中的租户 ID
|
||||
// 1. Token Claim(已认证请求必须以 Claim 为准,避免 Header 覆盖导致跨租户访问)
|
||||
var claim = context.User?.FindFirst("tenant_id");
|
||||
if (claim != null && long.TryParse(claim.Value, out var claimTenant))
|
||||
{
|
||||
return new TenantContext(claimTenant, null, "claim:tenant_id");
|
||||
}
|
||||
|
||||
// 2. Header 中的租户 ID
|
||||
if (!string.IsNullOrWhiteSpace(options.TenantIdHeaderName) &&
|
||||
request.Headers.TryGetValue(options.TenantIdHeaderName, out var tenantHeader) &&
|
||||
long.TryParse(tenantHeader.FirstOrDefault(), out var headerTenantId))
|
||||
@@ -98,7 +105,7 @@ public sealed class TenantResolutionMiddleware(
|
||||
return new TenantContext(headerTenantId, null, $"header:{options.TenantIdHeaderName}");
|
||||
}
|
||||
|
||||
// 2. Header 中的租户编码
|
||||
// 3. Header 中的租户编码
|
||||
if (!string.IsNullOrWhiteSpace(options.TenantCodeHeaderName) &&
|
||||
request.Headers.TryGetValue(options.TenantCodeHeaderName, out var codeHeader))
|
||||
{
|
||||
@@ -109,7 +116,7 @@ public sealed class TenantResolutionMiddleware(
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Host 映射/子域名解析
|
||||
// 4. Host 映射/子域名解析
|
||||
var host = request.Host.Host;
|
||||
if (!string.IsNullOrWhiteSpace(host))
|
||||
{
|
||||
@@ -125,13 +132,6 @@ public sealed class TenantResolutionMiddleware(
|
||||
}
|
||||
}
|
||||
|
||||
// 4. Token Claim
|
||||
var claim = context.User?.FindFirst("tenant_id");
|
||||
if (claim != null && long.TryParse(claim.Value, out var claimTenant))
|
||||
{
|
||||
return new TenantContext(claimTenant, null, "claim:tenant_id");
|
||||
}
|
||||
|
||||
return TenantContext.Empty;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user