Files
web-hosts/domains/coppertone.tech/backend/migrations/008_csrf_tokens.up.sql
2025-12-26 13:38:04 +01:00

19 lines
815 B
SQL

-- Migration 008: CSRF Tokens
-- Creates table for storing CSRF tokens for protection against cross-site request forgery
CREATE TABLE IF NOT EXISTS csrf_tokens (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
token_hash VARCHAR(255) NOT NULL,
expires_at TIMESTAMP WITH TIME ZONE NOT NULL,
client_ip VARCHAR(45),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Index for fast lookup by user_id and expiration
CREATE INDEX IF NOT EXISTS idx_csrf_tokens_user_id ON csrf_tokens(user_id);
CREATE INDEX IF NOT EXISTS idx_csrf_tokens_expires_at ON csrf_tokens(expires_at);
-- Cleanup old tokens automatically (run periodically via cron or app)
COMMENT ON TABLE csrf_tokens IS 'Stores hashed CSRF tokens for protecting state-changing operations';