This commit is contained in:
@@ -57,6 +57,7 @@ public sealed class BrowserAuthController(
|
||||
{
|
||||
EnsureTrustedOrigin();
|
||||
var realm = request.Realm!.Value;
|
||||
EnsureTenantRealm(realm);
|
||||
if (realm != AuthRealm.Tenant)
|
||||
throw new RequiredFieldException("SMS authentication is only available in the tenant realm.");
|
||||
var tenantId = await ResolveTenantIdAsync(realm, request.TenantCode, cancellationToken)
|
||||
@@ -80,6 +81,7 @@ public sealed class BrowserAuthController(
|
||||
{
|
||||
EnsureTrustedOrigin();
|
||||
var realm = request.Realm!.Value;
|
||||
EnsureTenantRealm(realm);
|
||||
var identifier = request.Identifier ?? request.Phone;
|
||||
if (string.IsNullOrWhiteSpace(identifier)) throw new RequiredFieldException("identifier is required.");
|
||||
var result = await authService.LoginWithPasswordAsync(new PasswordLoginRequest(
|
||||
@@ -102,6 +104,7 @@ public sealed class BrowserAuthController(
|
||||
{
|
||||
EnsureTrustedOrigin();
|
||||
var realm = request.Realm!.Value;
|
||||
EnsureTenantRealm(realm);
|
||||
var result = await authService.LoginWithSmsAsync(new SmsLoginRequest(
|
||||
realm,
|
||||
await ResolveTenantIdAsync(realm, request.TenantCode, cancellationToken),
|
||||
@@ -121,6 +124,7 @@ public sealed class BrowserAuthController(
|
||||
{
|
||||
EnsureTrustedOrigin();
|
||||
var realm = request.Realm!.Value;
|
||||
EnsureTenantRealm(realm);
|
||||
var result = await authService.LoginWithWechatWebAsync(new WechatLoginRequest(
|
||||
realm,
|
||||
await ResolveTenantIdAsync(realm, request.TenantCode, cancellationToken),
|
||||
@@ -139,6 +143,7 @@ public sealed class BrowserAuthController(
|
||||
{
|
||||
EnsureTrustedOrigin();
|
||||
var realm = request.Realm!.Value;
|
||||
EnsureTenantRealm(realm);
|
||||
var result = await authService.LoginWithWechatMiniAppAsync(new WechatLoginRequest(
|
||||
realm,
|
||||
await ResolveTenantIdAsync(realm, request.TenantCode, cancellationToken),
|
||||
@@ -344,6 +349,12 @@ public sealed class BrowserAuthController(
|
||||
tenantContextInitializer.Initialize(tenant.TenantId, tenant.TenantCode, TenantResolutionSource.TenantCode);
|
||||
return tenant.TenantId;
|
||||
}
|
||||
|
||||
private static void EnsureTenantRealm(AuthRealm realm)
|
||||
{
|
||||
if (realm != AuthRealm.Tenant)
|
||||
throw new RequiredFieldException("Browser tenant authentication only accepts the tenant realm.");
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class BrowserOriginException() : Exception("Browser authentication requires a same-origin request.");
|
||||
public sealed class BrowserOriginException() : Exception("Browser authentication requires a same-origin request.");
|
||||
|
||||
Reference in New Issue
Block a user