feat: add passkey support and WebAuthn libraries

Create database schema for passkey credentials.

Co-authored-by: ASOwnerYT <[email protected]>
This commit is contained in:
v0
2026-03-22 23:32:23 +00:00
co-authored by ASOwnerYT
parent 7b1a2051a0
commit da5a2e6aab
+35
View File
@@ -0,0 +1,35 @@
-- Create passkeys table for WebAuthn credential storage
CREATE TABLE IF NOT EXISTS public.passkeys (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
credential_id TEXT NOT NULL UNIQUE,
public_key TEXT NOT NULL,
sign_count INTEGER NOT NULL DEFAULT 0,
transports TEXT[] DEFAULT ARRAY[]::TEXT[],
backup_eligible BOOLEAN DEFAULT FALSE,
backup_state BOOLEAN DEFAULT FALSE,
aaguid UUID,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
last_used TIMESTAMP WITH TIME ZONE,
friendly_name TEXT
);
-- Enable RLS on passkeys table
ALTER TABLE public.passkeys ENABLE ROW LEVEL SECURITY;
-- Create RLS policies for passkeys
CREATE POLICY "Users can view their own passkeys" ON public.passkeys
FOR SELECT USING (auth.uid() = user_id);
CREATE POLICY "Users can insert their own passkeys" ON public.passkeys
FOR INSERT WITH CHECK (auth.uid() = user_id);
CREATE POLICY "Users can delete their own passkeys" ON public.passkeys
FOR DELETE USING (auth.uid() = user_id);
CREATE POLICY "Users can update their own passkeys" ON public.passkeys
FOR UPDATE USING (auth.uid() = user_id);
-- Create index for faster credential lookups
CREATE INDEX idx_passkeys_credential_id ON public.passkeys(credential_id);
CREATE INDEX idx_passkeys_user_id ON public.passkeys(user_id);