feat(admin): 관리자 로그인 소셜 → 아이디/비밀번호 (회원 인증과 분리)
- V9: admin_account(BCrypt) + admin_session 테이블 (회원 users/auth_session 과 분리) - /api/admin/auth: login(아이디/비번)·me·logout, AdminAuthInterceptor 로 /api/admin/** 보호 - 회원 자격의 관리자 개념 제거: MemberAdmin self-lock 제거, dev-login(DevAuthController) 삭제, 구 AdminInterceptor 삭제 - 관리자는 이제 회원(users)이 아님 → 회원관리 목록에서 미노출 - 시드: admin_account(admin/admin1234) - BCrypt용 spring-security-crypto (전체 Security 스타터 미사용) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
-- ============================================================
|
||||
-- V9: 관리자 계정(아이디/비밀번호 로그인) — 회원(users)과 분리
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE admin_account (
|
||||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||
username VARCHAR(50) NOT NULL UNIQUE,
|
||||
password_hash VARCHAR(255) NOT NULL, -- BCrypt
|
||||
name VARCHAR(50) NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
last_login_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
-- 관리자 세션 (회원 auth_session 과 분리)
|
||||
CREATE TABLE admin_session (
|
||||
token VARCHAR(64) PRIMARY KEY,
|
||||
admin_id BIGINT NOT NULL REFERENCES admin_account(id) ON DELETE CASCADE,
|
||||
expires_at TIMESTAMPTZ NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
CREATE INDEX idx_admin_session_expires ON admin_session(expires_at);
|
||||
Reference in New Issue
Block a user