// Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 package idfirst import ( "context" "github.com/ory/kratos/driver/config" "github.com/ory/kratos/identity" "github.com/ory/kratos/selfservice/flow/login" "github.com/ory/kratos/session" "github.com/ory/kratos/ui/node" "github.com/ory/kratos/x/nosurfx" "github.com/ory/x/httpx" "github.com/ory/x/logrusx" "github.com/ory/x/otelx" ) type dependencies interface { logrusx.Provider httpx.WriterProvider nosurfx.CSRFTokenGeneratorProvider nosurfx.CSRFProvider otelx.Provider config.Provider identity.PrivilegedPoolProvider login.StrategyProvider login.FlowPersistenceProvider } type Strategy struct{ d dependencies } func NewStrategy(d dependencies) *Strategy { return &Strategy{d: d} } func (s *Strategy) ID() identity.CredentialsType { return identity.CredentialsTypeIdentifierFirst } func (s *Strategy) CompletedAuthenticationMethod(ctx context.Context) session.AuthenticationMethod { return session.AuthenticationMethod{ Method: s.ID(), AAL: identity.NoAuthenticatorAssuranceLevel, } } func (s *Strategy) NodeGroup() node.UiNodeGroup { return node.IdentifierFirstGroup }