관리자 승인과 사용자 OAuth 증명을 분리하고 기존 Kakao stable ID를 영구 폐기한다. 로그인 ID와 닉네임 변경은 현재 장수에 revision 기반으로 투영하며 과거 기록은 당시 이름으로 보존한다.
11 lines
585 B
TypeScript
11 lines
585 B
TypeScript
import type { GatewaySessionInfo } from './sessionService.js';
|
|
import type { UserRecord } from './userRepository.js';
|
|
|
|
export const isGatewaySessionCurrent = (session: GatewaySessionInfo, user: UserRecord): boolean => {
|
|
if ((session.authRevision ?? 0) !== (user.authRevision ?? 0)) return false;
|
|
if (!user.sessionRevokedBefore) return true;
|
|
const issuedAt = new Date(session.issuedAt).getTime();
|
|
const revokedBefore = new Date(user.sessionRevokedBefore).getTime();
|
|
return Number.isFinite(issuedAt) && Number.isFinite(revokedBefore) && issuedAt >= revokedBefore;
|
|
};
|