Files
zitadel/backend/v3/api/session/v2/convert/session_challenge_passkey.go
T
c7f92a6887 feat: session challenge passkey for the RT model (#11944)
# Which Problems Are Solved

Add Passkey challenge needed for Create/Set session in the RT model.

# How the Problems Are Solved

Introduce `PasskeyChallengeCommand` (validate/execute/events) for
session creation checks
Add a generic `BeginWebAuthNLogin` helper that returns session data +
assertion JSON bytes.
Add unit tests

# Additional Changes
N/A

# Additional Context
- Related to https://github.com/zitadel/zitadel/issues/11035

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Marco A. <[email protected]>
2026-04-01 12:13:40 +02:00

34 lines
1.4 KiB
Go

package convert
import (
"github.com/zitadel/zitadel/backend/v3/domain"
old_domain "github.com/zitadel/zitadel/internal/domain"
session_grpc "github.com/zitadel/zitadel/pkg/grpc/session/v2"
)
func ChallengePasskeyGRPCToDomain(challengePasskey *session_grpc.RequestChallenges_WebAuthN) *domain.ChallengeTypePasskey {
if challengePasskey == nil {
return nil
}
userVerificationRequirement := pbUserVerificationRequirementToDomain(challengePasskey.GetUserVerificationRequirement())
return &domain.ChallengeTypePasskey{
Domain: challengePasskey.GetDomain(),
UserVerificationRequirement: userVerificationRequirement,
}
}
func pbUserVerificationRequirementToDomain(req session_grpc.UserVerificationRequirement) old_domain.UserVerificationRequirement {
switch req {
case session_grpc.UserVerificationRequirement_USER_VERIFICATION_REQUIREMENT_UNSPECIFIED:
return old_domain.UserVerificationRequirementUnspecified
case session_grpc.UserVerificationRequirement_USER_VERIFICATION_REQUIREMENT_REQUIRED:
return old_domain.UserVerificationRequirementRequired
case session_grpc.UserVerificationRequirement_USER_VERIFICATION_REQUIREMENT_PREFERRED:
return old_domain.UserVerificationRequirementPreferred
case session_grpc.UserVerificationRequirement_USER_VERIFICATION_REQUIREMENT_DISCOURAGED:
return old_domain.UserVerificationRequirementDiscouraged
default:
return old_domain.UserVerificationRequirementUnspecified
}
}