You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
614 B
SQL
16 lines
614 B
SQL
-- Create the magic link tokens table.
|
|
-- token_hash is the SHA-256 hash of the raw token sent to the user.
|
|
-- Tokens are single-use: the `used` flag is set to true on first verification.
|
|
|
|
CREATE TABLE magic_tokens (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
email TEXT NOT NULL,
|
|
token_hash TEXT NOT NULL UNIQUE,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
expires_at TIMESTAMPTZ NOT NULL,
|
|
used BOOLEAN NOT NULL DEFAULT false
|
|
);
|
|
|
|
CREATE INDEX idx_magic_tokens_email ON magic_tokens(email);
|
|
CREATE INDEX idx_magic_tokens_expires ON magic_tokens(expires_at);
|