- Auth-Token-Tabelle mit gehashten Single-Use-Tokens einführen - Passwort-Reset und E-Mail-Verifikation als Dev-Flow bauen - Token-Flow-Test, Smoke-Abdeckung und M3-Dokumentation aktualisieren
20 lines
788 B
SQL
20 lines
788 B
SQL
CREATE TABLE IF NOT EXISTS user_auth_tokens (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id INT NOT NULL,
|
|
tenant_id INT NULL,
|
|
token_type VARCHAR(40) NOT NULL,
|
|
token_hash CHAR(64) NOT NULL,
|
|
expires_at DATETIME NOT NULL,
|
|
consumed_at DATETIME NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uq_user_auth_tokens_hash (token_hash),
|
|
KEY idx_user_auth_tokens_user_type (user_id, token_type, consumed_at, expires_at),
|
|
KEY idx_user_auth_tokens_tenant (tenant_id),
|
|
CONSTRAINT fk_user_auth_tokens_user
|
|
FOREIGN KEY (user_id) REFERENCES users(id)
|
|
ON DELETE CASCADE,
|
|
CONSTRAINT fk_user_auth_tokens_tenant
|
|
FOREIGN KEY (tenant_id) REFERENCES tenants(id)
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|