lavender/auth/providers/passkey.go

34 lines
799 B
Go
Raw Normal View History

package providers
import (
2025-03-13 22:41:57 +00:00
"context"
"github.com/1f349/lavender/auth"
"github.com/1f349/lavender/auth/authContext"
"github.com/1f349/lavender/auth/process"
2025-03-13 22:41:57 +00:00
"github.com/1f349/lavender/database"
)
type passkeyLoginDB interface {
2025-03-13 22:41:57 +00:00
GetUser(ctx context.Context, subject string) (database.User, error)
}
2025-01-19 12:04:25 +00:00
var (
_ auth.Provider = (*PasskeyLogin)(nil)
_ auth.Button = (*PasskeyLogin)(nil)
)
type PasskeyLogin struct {
DB passkeyLoginDB
}
func (p *PasskeyLogin) AccessState() process.State { return process.StateUnauthorized }
func (p *PasskeyLogin) Name() string { return "passkey" }
2025-03-14 14:46:54 +00:00
func (p *PasskeyLogin) String() string { return "%Provider(passkey)" }
func (p *PasskeyLogin) RenderButtonTemplate(ctx authContext.TemplateContext) {
// provide something non-nil
ctx.Render(struct{}{})
2025-01-19 12:04:25 +00:00
}