Refresh Tokens

This commit is contained in:
2025-03-11 22:39:58 +02:00
parent 5fe09f0a2f
commit 1bad21ae45
13 changed files with 254 additions and 15 deletions

View File

@@ -0,0 +1,4 @@
-- name: CreateRefreshToken :one
INSERT INTO refresh_tokens (token, created_at, updated_at, user_id, expires_at, revoked_at)
VALUES ($1, NOW(), NOW(), $2, $3, null)
RETURNING *;

View File

@@ -0,0 +1,2 @@
-- name: GetRefreshTokenByToken :one
SELECT * FROM refresh_tokens WHERE token = $1 AND revoked_at is null;

View File

@@ -0,0 +1,2 @@
-- name: GetUserByID :one
SELECT * FROM users WHERE id = $1;

View File

@@ -0,0 +1,2 @@
-- name: RevokeRefreshTokenByToken :exec
UPDATE refresh_tokens SET revoked_at = CURRENT_TIMESTAMP WHERE token = $1;

View File

@@ -0,0 +1,12 @@
-- +goose Up
CREATE TABLE refresh_tokens(
token TEXT PRIMARY KEY,
created_at TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP,
user_id UUID not null REFERENCES users(id) ON DELETE CASCADE,
expires_at timestamp not null,
revoked_at timestamp default null
);
-- +goose Down
DROP TABLE refresh_tokens;