24 lines
766 B
MySQL
24 lines
766 B
MySQL
|
CREATE TABLE users (
|
||
|
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
|
||
|
|
||
|
username varchar(32) UNIQUE NOT NULL,
|
||
|
-- Hashed + salted representation of the username
|
||
|
password text NOT NULL,
|
||
|
-- Wether the user is currently blocked
|
||
|
blocked boolean NOT NULL DEFAULT false,
|
||
|
-- Wether the user is an admin
|
||
|
admin boolean NOT NULL DEFAULT false
|
||
|
);
|
||
|
|
||
|
-- Stores refresh tokens
|
||
|
CREATE TABLE refresh_tokens (
|
||
|
-- This is more efficient than storing the text
|
||
|
token bytea PRIMARY KEY,
|
||
|
-- The user for whom the token was created
|
||
|
user_id uuid NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||
|
-- When the token expires
|
||
|
expires_at timestamp NOT NULL,
|
||
|
-- When the token was last used (is NULL until used)
|
||
|
last_used_at timestamp
|
||
|
);
|