13 lines
617 B
SQL
13 lines
617 B
SQL
-- Single-use password reset tokens (stored hashed, like refresh tokens).
|
|
-- A token is valid for 30 minutes; issuing a new request for the same
|
|
-- account supersedes any token still pending from an earlier request.
|
|
CREATE TABLE password_reset_tokens (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
account_id UUID NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
|
token_hash TEXT NOT NULL UNIQUE,
|
|
expires_at TIMESTAMPTZ NOT NULL,
|
|
used_at TIMESTAMPTZ,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX idx_password_reset_tokens_account_id ON password_reset_tokens(account_id);
|