From f5cd73b22371c6f82770604415893e0ea6324b16 Mon Sep 17 00:00:00 2001 From: zenn Date: Mon, 11 May 2026 17:10:48 +0900 Subject: [PATCH] =?UTF-8?q?feat(member):=20=ED=9A=8C=EC=9B=90=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95/=ED=97=A4=EB=8D=94=20=EC=83=81=ED=83=9C=20UI=EC=99=80?= =?UTF-8?q?=20=EA=B4=80=EB=A6=AC=EC=9E=90=20=EB=A9=A4=EB=B2=84=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 로그인 상태를 헤더에서 즉시 인지하고 계정 관리를 이어갈 수 있도록 사용자 설정과 관리자 멤버 관측 기능을 연결했다. Co-authored-by: Cursor --- .env.example | 1 + components/comments/PostComments.vue | 305 ++++++++++++++++++ components/site/SiteHeader.vue | 112 +++++-- .../010_add_members_and_comments.sql | 30 ++ .../011_add_member_profile_and_activity.sql | 25 ++ docs/history.md | 14 + docs/map.md | 26 +- docs/spec.md | 51 ++- docs/update.md | 14 + layouts/admin.vue | 3 + nuxt.config.js | 1 + package-lock.json | 28 +- package.json | 3 +- pages/admin/members/index.vue | 88 +++++ pages/index.vue | 6 +- pages/post/[slug].vue | 5 +- pages/settings/index.vue | 273 ++++++++++++++++ pages/signin.vue | 21 +- pages/signup.vue | 98 ++---- server/api/auth/account.delete.js | 48 +++ server/api/auth/check-username.get.js | 31 ++ server/api/auth/login.post.js | 50 +++ server/api/auth/logout.post.js | 12 + server/api/auth/me.get.js | 34 ++ server/api/auth/password.put.js | 52 +++ server/api/auth/profile.get.js | 28 ++ server/api/auth/profile.put.js | 67 ++++ server/api/auth/signup.post.js | 69 ++++ server/api/posts/[slug]/comments.get.js | 16 + server/api/posts/[slug]/comments.post.js | 44 +++ server/repositories/comment-repository.js | 196 +++++++++++ server/repositories/member-repository.js | 284 ++++++++++++++++ server/routes/admin/api/members.get.js | 13 + server/utils/member-auth.js | 152 +++++++++ 34 files changed, 2093 insertions(+), 107 deletions(-) create mode 100644 components/comments/PostComments.vue create mode 100644 db/migrations/010_add_members_and_comments.sql create mode 100644 db/migrations/011_add_member_profile_and_activity.sql create mode 100644 pages/admin/members/index.vue create mode 100644 pages/settings/index.vue create mode 100644 server/api/auth/account.delete.js create mode 100644 server/api/auth/check-username.get.js create mode 100644 server/api/auth/login.post.js create mode 100644 server/api/auth/logout.post.js create mode 100644 server/api/auth/me.get.js create mode 100644 server/api/auth/password.put.js create mode 100644 server/api/auth/profile.get.js create mode 100644 server/api/auth/profile.put.js create mode 100644 server/api/auth/signup.post.js create mode 100644 server/api/posts/[slug]/comments.get.js create mode 100644 server/api/posts/[slug]/comments.post.js create mode 100644 server/repositories/comment-repository.js create mode 100644 server/repositories/member-repository.js create mode 100644 server/routes/admin/api/members.get.js create mode 100644 server/utils/member-auth.js diff --git a/.env.example b/.env.example index 2601333..3679d11 100644 --- a/.env.example +++ b/.env.example @@ -9,6 +9,7 @@ DB_PORT=43119 # Auth ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD=replace-with-random-password +MEMBER_SESSION_SECRET=replace-with-random-password # Upload UPLOAD_DIR=/uploads diff --git a/components/comments/PostComments.vue b/components/comments/PostComments.vue new file mode 100644 index 0000000..96b7ee1 --- /dev/null +++ b/components/comments/PostComments.vue @@ -0,0 +1,305 @@ + + +