feat: support time_zone for user registration context

This commit is contained in:
Ilia Denisov
2026-04-09 09:00:06 +02:00
parent e6b73a8f55
commit 7043af4cb3
40 changed files with 3452 additions and 164 deletions
@@ -138,11 +138,7 @@ func TestProductionHardeningConcurrentIdenticalConfirmsConvergeToOneActiveSessio
})
challengeID, code := app.SendChallenge(t, gatewayCompatibilityEmail)
requestBody := map[string]string{
"challenge_id": challengeID,
"code": code,
"client_public_key": gatewayCompatibilityClientPublicKey,
}
requestBody := gatewayCompatibilityConfirmRequest(challengeID, code, gatewayCompatibilityClientPublicKey)
responses := make([]gatewayCompatibilityHTTPResponse, 2)
start := make(chan struct{})
@@ -220,11 +216,11 @@ func TestProductionHardeningConcurrentConfirmAndRevokeAllKeepProjectionConsisten
challengeID, code := app.SendChallenge(t, gatewayCompatibilityEmail)
confirmResponseCh := make(chan gatewayCompatibilityHTTPResponse, 1)
go func() {
confirmResponseCh <- gatewayCompatibilityPostJSONValue(t, app.publicBaseURL+"/api/v1/public/auth/confirm-email-code", map[string]string{
"challenge_id": challengeID,
"code": code,
"client_public_key": gatewayCompatibilityClientPublicKey,
})
confirmResponseCh <- gatewayCompatibilityPostJSONValue(
t,
app.publicBaseURL+"/api/v1/public/auth/confirm-email-code",
gatewayCompatibilityConfirmRequest(challengeID, code, gatewayCompatibilityClientPublicKey),
)
}()
createdIDs := gate.WaitForCreates(t, 1)
@@ -279,11 +275,11 @@ func TestProductionHardeningConcurrentBlockUserAndConfirmDoNotLeakActiveSession(
confirmResponseCh := make(chan gatewayCompatibilityHTTPResponse, 1)
go func() {
confirmResponseCh <- gatewayCompatibilityPostJSONValue(t, app.publicBaseURL+"/api/v1/public/auth/confirm-email-code", map[string]string{
"challenge_id": challengeID,
"code": code,
"client_public_key": gatewayCompatibilityClientPublicKey,
})
confirmResponseCh <- gatewayCompatibilityPostJSONValue(
t,
app.publicBaseURL+"/api/v1/public/auth/confirm-email-code",
gatewayCompatibilityConfirmRequest(challengeID, code, gatewayCompatibilityClientPublicKey),
)
}()
createdIDs := gate.WaitForCreates(t, 1)
@@ -324,11 +320,11 @@ func TestProductionHardeningConcurrentBlockUserAndConfirmDoNotLeakActiveSession(
assert.NotEmpty(t, sendBody.ChallengeID)
assert.Len(t, app.mailSender.RecordedAttempts(), 1)
followupConfirm := gatewayCompatibilityPostJSONValue(t, app.publicBaseURL+"/api/v1/public/auth/confirm-email-code", map[string]string{
"challenge_id": sendBody.ChallengeID,
"code": gatewayCompatibilityCode,
"client_public_key": gatewayCompatibilityClientPublicKey,
})
followupConfirm := gatewayCompatibilityPostJSONValue(
t,
app.publicBaseURL+"/api/v1/public/auth/confirm-email-code",
gatewayCompatibilityConfirmRequest(sendBody.ChallengeID, gatewayCompatibilityCode, gatewayCompatibilityClientPublicKey),
)
assert.Equal(t, http.StatusForbidden, followupConfirm.StatusCode)
assert.JSONEq(t, `{"error":{"code":"blocked_by_policy","message":"authentication is blocked by policy"}}`, followupConfirm.Body)
}