Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
11 lines
687 B
JavaScript
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
|
|
);` }];
|