Skip to content

feat: Better Authでメール/パスワード認証を追加 - #36

Draft
tknkaa wants to merge 1 commit into
mainfrom
feature/better-auth
Draft

feat: Better Authでメール/パスワード認証を追加#36
tknkaa wants to merge 1 commit into
mainfrom
feature/better-auth

Conversation

@tknkaa

@tknkaa tknkaa commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Better Authを導入し、メール/パスワードでの新規登録・ログイン・ログアウトに対応
  • NotebookuserIdを追加し、My単語帳をログインユーザーに紐付け。作成・閲覧・編集・削除はすべて所有者本人のみに限定
  • proxy.ts(Next.js 16でmiddleware.tsから改名された規約)で/my-notebooks配下を未ログインなら/loginへリダイレクトする楽観的チェックを追加し、lib/session.tsrequireUser()で各ページ・Server Action側の本チェックを実施

開発環境向けの注意

  • prisma/schema.prismaUser/Session/Account/Verificationテーブルを追加するマイグレーションを含みます。ローカルで取り込む際はprisma migrate devの実行と、既存のprisma/dev.dbのリセットが必要になる場合があります
  • .envBETTER_AUTH_SECRETopenssl rand -base64 32などで生成)とBETTER_AUTH_URLの設定が必要です(.env.example参照)

Test plan

  • npm run typecheck / npm run lint / npm run format が通ることを確認
  • サインアップ→セッションCookie発行→/my-notebooksへのアクセスを確認
  • 未ログイン時に/my-notebooks/loginへリダイレクトされることを確認
  • ログイン済みユーザーが/login, /signupにアクセスすると/my-notebooksへリダイレクトされることを確認
  • 他ユーザーが所有する単語帳IDに直接アクセスすると404になることを確認
  • ブラウザでのフォーム操作(実際のクリック確認)は未実施

🤖 Generated with Claude Code

https://claude.ai/code/session_01Lad52Pk8VQZpi7uFAmVDNA

- lib/auth.ts, lib/auth-client.ts, app/api/auth/[...all]/route.ts でBetter Authを導入
- proxy.ts(Next.js 16のmiddleware後継)で /my-notebooks 配下をログイン必須にし、
  ログイン済みなら /login, /signup から追い出す楽観的チェックを追加
- lib/session.ts の requireUser() で各ページ・Server Action側の本チェックを実施
- ログイン/新規登録ページとヘッダーのログイン状態表示・ログアウトボタンを追加
- Prisma schemaに User/Session/Account/Verification を追加し、Notebook.userId を必須化。
  単語帳の作成・閲覧・編集・削除をすべて所有者本人に限定

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lad52Pk8VQZpi7uFAmVDNA
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants