Files
AriWeb-Suite/portal/auth/model.mjs
T

11 lines
687 B
JavaScript

/**
* portal/auth/model.mjs — 인증 영역 세부 표.
* login_attempts : 이메일+IP 별 실패 횟수와 잠금 해제 시각(§3.2 반복 실패 제한)
* consents 는 users.consents_json, MFA 는 users.mfa_json({ secret, enabledAt, lastCounter }), 복구 코드는 users.recovery_json([{hash, usedAt}]) 에 둔다.
* 이메일 확인·비밀번호 재설정·MFA 사전 인증 토큰은 core 의 email_tokens(kind: verify | reset | mfa_preauth) 를 쓴다.
*/
export const MIGRATIONS = [{ id: 'auth_0001', sql: `
CREATE TABLE IF NOT EXISTS login_attempts (
key TEXT PRIMARY KEY, failures INTEGER NOT NULL DEFAULT 0, lock_until TEXT, updated_at TEXT NOT NULL
);` }];