fix: /link/verify 타임존 불일치로 항상 토큰 만료 판정되는 버그 수정
Node 프로세스는 UTC로 token_expires를 저장하는데 MariaDB 세션 TZ가 +09:00(KST)이어서 NOW()가 KST 벽시계를 반환, "05:54 > 14:47" 비교가 항상 false가 되어 유효한 토큰도 만료로 처리되던 문제. 쿼리의 NOW()를 UTC_TIMESTAMP()로 변경해 양쪽 다 UTC 벽시계 기준으로 비교하도록 정정. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a5e54e1ac6
commit
6ace99c9a4
1 changed files with 3 additions and 2 deletions
|
|
@ -277,9 +277,10 @@ router.post("/verify", async (req, res) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 토큰 검증
|
// 토큰 검증 (UTC_TIMESTAMP() 사용: token_expires는 Node가 UTC 벽시계로 저장하므로
|
||||||
|
// 세션 TZ가 UTC가 아닌 환경에서도 일관된 비교를 보장)
|
||||||
const [links] = await pool.query(
|
const [links] = await pool.query(
|
||||||
"SELECT * FROM minecraft_links WHERE link_token = ? AND token_expires > NOW()",
|
"SELECT * FROM minecraft_links WHERE link_token = ? AND token_expires > UTC_TIMESTAMP()",
|
||||||
[token.toUpperCase()]
|
[token.toUpperCase()]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue