로그인 유지와 마지막 접속 기록 개선
This commit is contained in:
12
docs/spec.md
12
docs/spec.md
@@ -3,7 +3,7 @@
|
||||
## 프로젝트 개요
|
||||
|
||||
- 서비스명: `UNIARE - Union Arena Deck Builder`
|
||||
- 현재 버전: `v4.0.4`
|
||||
- 현재 버전: `v4.0.11`
|
||||
- 프론트: 정적 HTML, CSS, JavaScript
|
||||
- 백엔드: Express, SQLite(`better-sqlite3`)
|
||||
- 운영: Docker Compose 기반 Nginx + API
|
||||
@@ -78,14 +78,16 @@
|
||||
| `lang` | 선택 언어 |
|
||||
| `selectedCards` | 편집 중인 덱 |
|
||||
| `selectedSeries` | 현재 시리즈 |
|
||||
| `uadeck_token` | JWT |
|
||||
| `uadeck_user` | 로그인 사용자 캐시 |
|
||||
| `uadeck_token` | JWT. 로그인 유지 선택 시 `localStorage`, 미선택 시 `sessionStorage` |
|
||||
| `uadeck_user` | 로그인 사용자 캐시. 토큰과 같은 저장소 사용 |
|
||||
| `uadeck.deckFavorites` | 비로그인 즐겨찾기 및 로그인 시 최초 이전 대상 |
|
||||
|
||||
## 인증 및 권한
|
||||
|
||||
- 비밀번호는 bcrypt 비용 12로 해시한다.
|
||||
- JWT 기본 만료는 7일이며 `JWT_EXPIRES`로 변경할 수 있다.
|
||||
- 로그인 유지 선택 시 브라우저를 닫아도 인증 정보를 유지하고, 미선택 시 현재 브라우저 세션에서만 유지한다.
|
||||
- 인증된 화면 진입 시 `/auth/me` 검증과 함께 `last_login_at`을 갱신한다.
|
||||
- `user`는 자신의 프로필과 덱만 수정·삭제할 수 있다.
|
||||
- `admin`은 회원 상태·역할·비밀번호와 전체 덱을 관리할 수 있다.
|
||||
- 관리자는 자신의 관리자 역할을 해제하거나 자신의 계정을 비활성화할 수 없다.
|
||||
@@ -120,7 +122,7 @@
|
||||
| `is_active` | 계정 활성 상태 |
|
||||
| `default_deck_public` | 덱 저장 기본 공개 여부 |
|
||||
| `skip_deck_public_prompt` | 저장 시 공개 확인 생략 여부 |
|
||||
| `last_login_at` | 마지막 로그인 시각 |
|
||||
| `last_login_at` | 마지막 로그인 또는 인증 세션 확인 시각 |
|
||||
| `created_at`, `updated_at` | 생성·수정 시각 |
|
||||
|
||||
### `decks`
|
||||
@@ -162,7 +164,7 @@
|
||||
|---|---|---|---|
|
||||
| POST | `/api/v1/auth/register` | 공개 | 회원가입 |
|
||||
| POST | `/api/v1/auth/login` | 공개 | 로그인과 JWT 발급, `last_login_at` 갱신 |
|
||||
| GET | `/api/v1/auth/me` | 회원 | 내 정보 |
|
||||
| GET | `/api/v1/auth/me` | 회원 | 내 정보와 인증 세션 확인, `last_login_at` 갱신 |
|
||||
| PUT | `/api/v1/auth/me` | 회원 | 프로필·덱 저장 설정 변경 |
|
||||
| POST | `/api/v1/auth/me/password` | 회원 | 비밀번호 변경 |
|
||||
| GET | `/api/v1/auth/avatar/:userId` | 공개 | PNG 아바타 |
|
||||
|
||||
Reference in New Issue
Block a user