feat(auth): replace TOTP with phone-first login

This commit is contained in:
2026-07-28 17:39:29 +08:00
parent e7d350ec3d
commit c7f9a4e3c9
43 changed files with 18386 additions and 882 deletions

View File

@@ -167,11 +167,9 @@ internal static class AuthenticationExtensions
realm.Value,
tenantId,
context.HttpContext.RequestAborted);
var tokenMfaSatisfied = principal.FindAll(TikuClaimTypes.Mfa)
.Any(claim => string.Equals(claim.Value, "mfa", StringComparison.Ordinal));
if (session is null || session.MfaSatisfied != tokenMfaSatisfied)
if (session is null)
{
context.Fail("Session, identity, membership, tenant, role or MFA state is no longer valid.");
context.Fail("Session, identity, membership, tenant or role state is no longer valid.");
}
}

View File

@@ -67,14 +67,6 @@ internal static class RateLimitingExtensions
authRateLimitOptions.SmsPermitLimit,
0,
authRateLimitOptions.SmsWindowSeconds)));
options.AddPolicy(
AuthRateLimitPolicies.Mfa,
httpContext => RateLimitPartition.GetFixedWindowLimiter(
AuthRateLimitPartitionKey.Resolve(httpContext, AuthRateLimitPolicies.Mfa),
_ => CreateLimiterOptions(
authRateLimitOptions.MfaPermitLimit,
0,
authRateLimitOptions.MfaWindowSeconds)));
options.OnRejected = WriteRateLimitProblemAsync;
});