mirror of
https://github.com/kmc7468/arkvault.git
synced 2025-12-18 07:58:57 +00:00
암호 키 등록 챌린지 처리 방식을 세션 업그레이드 챌린지 처리 방식과 동일하게 변경
This commit is contained in:
@@ -119,26 +119,21 @@ export const registerUserClientChallenge = async (
|
||||
});
|
||||
};
|
||||
|
||||
export const getUserClientChallenge = async (answer: string, ip: string) => {
|
||||
export const consumeUserClientChallenge = async (userId: number, answer: string, ip: string) => {
|
||||
const challenges = await db
|
||||
.select()
|
||||
.from(userClientChallenge)
|
||||
.delete(userClientChallenge)
|
||||
.where(
|
||||
and(
|
||||
eq(userClientChallenge.userId, userId),
|
||||
eq(userClientChallenge.answer, answer),
|
||||
eq(userClientChallenge.allowedIp, ip),
|
||||
gt(userClientChallenge.expiresAt, new Date()),
|
||||
eq(userClientChallenge.isUsed, false),
|
||||
),
|
||||
)
|
||||
.limit(1);
|
||||
.returning({ clientId: userClientChallenge.clientId });
|
||||
return challenges[0] ?? null;
|
||||
};
|
||||
|
||||
export const markUserClientChallengeAsUsed = async (id: number) => {
|
||||
await db.update(userClientChallenge).set({ isUsed: true }).where(eq(userClientChallenge.id, id));
|
||||
};
|
||||
|
||||
export const cleanupExpiredUserClientChallenges = async () => {
|
||||
await db.delete(userClientChallenge).where(lte(userClientChallenge.expiresAt, new Date()));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user