feat: passkey в профиле и входе, кнопка админки в кабинете

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
shop
2026-05-17 12:58:00 +03:00
parent 711110c03b
commit e71bfa35dc
12 changed files with 757 additions and 11 deletions
+17
View File
@@ -0,0 +1,17 @@
-- Passkey (WebAuthn) — опциональный вход вместо пароля
ALTER TABLE users ADD COLUMN IF NOT EXISTS passkey_enabled BOOLEAN NOT NULL DEFAULT false;
CREATE TABLE IF NOT EXISTS webauthn_credentials (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
credential_id TEXT NOT NULL UNIQUE,
public_key BYTEA NOT NULL,
counter BIGINT NOT NULL DEFAULT 0,
device_type VARCHAR(32),
backed_up BOOLEAN NOT NULL DEFAULT false,
transports TEXT,
label TEXT NOT NULL DEFAULT 'Passkey',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_webauthn_credentials_user_id ON webauthn_credentials(user_id);