Refresh Tokens
This commit is contained in:
4
sql/queries/CreateRefreshToken.sql
Normal file
4
sql/queries/CreateRefreshToken.sql
Normal 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 *;
|
||||
2
sql/queries/GetRefreshTokenByToken.sql
Normal file
2
sql/queries/GetRefreshTokenByToken.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- name: GetRefreshTokenByToken :one
|
||||
SELECT * FROM refresh_tokens WHERE token = $1 AND revoked_at is null;
|
||||
2
sql/queries/GetUserByID.sql
Normal file
2
sql/queries/GetUserByID.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- name: GetUserByID :one
|
||||
SELECT * FROM users WHERE id = $1;
|
||||
2
sql/queries/RevokeRefreshTokenByToken.sql
Normal file
2
sql/queries/RevokeRefreshTokenByToken.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- name: RevokeRefreshTokenByToken :exec
|
||||
UPDATE refresh_tokens SET revoked_at = CURRENT_TIMESTAMP WHERE token = $1;
|
||||
12
sql/schema/004_refresh_tokens.sql
Normal file
12
sql/schema/004_refresh_tokens.sql
Normal 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;
|
||||
Reference in New Issue
Block a user