mirror of
https://github.com/kmc7468/arkvault.git
synced 2025-12-16 15:08:46 +00:00
/api/auth/logout, /api/auth/refreshToken Endpoint 구현
This commit is contained in:
@@ -5,3 +5,9 @@ export const user = sqliteTable("user", {
|
||||
email: text("email").notNull().unique(),
|
||||
password: text("password").notNull(),
|
||||
});
|
||||
|
||||
export const revokedToken = sqliteTable("revoked_token", {
|
||||
id: integer("id").primaryKey(),
|
||||
token: text("token").notNull().unique(),
|
||||
revokedAt: integer("revoked_at").notNull(),
|
||||
});
|
||||
|
||||
@@ -1,8 +1,27 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import db from "./drizzle";
|
||||
import { user } from "./schema";
|
||||
import { user, revokedToken } from "./schema";
|
||||
|
||||
export const getUserByEmail = async (email: string) => {
|
||||
const users = await db.select().from(user).where(eq(user.email, email)).execute();
|
||||
return users[0] ?? null;
|
||||
};
|
||||
|
||||
export const revokeToken = async (token: string) => {
|
||||
await db
|
||||
.insert(revokedToken)
|
||||
.values({
|
||||
token,
|
||||
revokedAt: Date.now(),
|
||||
})
|
||||
.execute();
|
||||
};
|
||||
|
||||
export const isTokenRevoked = async (token: string) => {
|
||||
const tokens = await db
|
||||
.select()
|
||||
.from(revokedToken)
|
||||
.where(eq(revokedToken.token, token))
|
||||
.execute();
|
||||
return tokens.length > 0;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user