nuxt-users
Nuxt 3およびNuxt 4向けのnuxt-usersモジュールの設定と利用ができます。認証機能、ユーザー管理、ロール設定、パスワードリセット、データベース設定(SQLite/MySQL/PostgreSQL)、CLIコマンド(migrate、create-userなど)の追加時に活用できます。nuxt.config(nuxtUsers)、composables(useAuthentication、useUsers、usePublicPaths、usePasswordValidation、useNuxtUsersLocaleなど)、コンポーネント(NUsersLoginForm、NUsersLogoutLinkなど)、認可設定(ホワイトリスト、パーミッション)に対応しています。
description の原文を見る
Configure and use the nuxt-users module for Nuxt 3 and Nuxt 4. Use when adding authentication, user management, roles, password reset, database setup (SQLite/MySQL/PostgreSQL), or CLI commands (migrate, create-user). Covers nuxt.config (nuxtUsers), composables (useAuthentication, useUsers, usePublicPaths, usePasswordValidation, useNuxtUsersLocale), components (NUsersLoginForm, NUsersLogoutLink, etc.), and authorization (whitelist, permissions).
SKILL.md 本文
Nuxt Users スキル
このスキルは nuxt-users モジュールの操作を支援します:ユーザー認証、認可、データベース設定、および Nuxt 3 と Nuxt 4 アプリ用の CLI です。
このスキルを使用する場合
- ユーザーが Nuxt アプリにログイン、登録、またはログアウト機能を追加したい場合
- ユーザーが nuxt-users 用のデータベース(SQLite、MySQL、PostgreSQL)をセットアップまたは変更する必要がある場合
- ユーザーが CLI コマンドを実行したい場合:
npx nuxt-users migrate、npx nuxt-users create-user - ユーザーがパーミッション、ロール、または公開ルート(ホワイトリスト)を設定する必要がある場合
- ユーザーがパスワード検証、セッション期間、またはメーラー(パスワードリセット)をカスタマイズしている場合
- ユーザーが
useAuthentication、useUsers、usePublicPaths、usePasswordValidationなどのコンポーザブルを使用している場合 - ユーザーが
NUsersLoginForm、NUsersLogoutLink、NUsersProfileInfo、NUsersResetPasswordForm、NUsersList、NUsersUserFormなどのコンポーネントをスタイリングまたは統合している場合
ステップバイステップ:初期セットアップ
-
モジュールとピアー依存関係をインストール
npm install nuxt-users npm install db0 better-sqlite3 bcrypt nodemailerMySQL または PostgreSQL の場合、必要に応じて
better-sqlite3の代わりに、または追加で対応するドライバー(mysql2またはpg)をインストールしてください。 -
nuxt.config.tsにモジュールを登録export default defineNuxtConfig({ modules: ['nuxt-users'] }) -
マイグレーションを実行 プロジェクトルート(
nuxt.config.tsが存在する場所)から実行:npx nuxt-users migrate -
少なくとも 1 ユーザーを作成
npx nuxt-users create-user -e admin@example.com -n "Admin User" -p password123 -r adminフラグ:
-eメール、-n名前、-pパスワード、-rロール(オプション)。 -
パーミッションを設定(保護されたルートで必須)
auth.permissionsがない場合、認証されたユーザーは保護されたルートにアクセスできません。早期設定を推奨します:export default defineNuxtConfig({ modules: ['nuxt-users'], nuxtUsers: { auth: { permissions: { admin: ['*'], user: ['/profile', '/api/nuxt-users/me'] } } } }) -
ページでログインを使用
NUsersLoginFormコンポーネントを使用し、@successでuseAuthentication()からlogin(user)を呼び出します。- オプションでログイン後にリダイレクト(例:
navigateTo('/'))できます。
設定リファレンス(nuxt.config.ts)
すべてのオプションは nuxt.config.ts の nuxtUsers 下にあります。
| 領域 | キー | 注記 |
|---|---|---|
| データベース | connector.name | 'sqlite' | 'mysql' | 'postgresql' |
| データベース | connector.options | path(SQLite)、または host、port、user、password、database(MySQL/PostgreSQL) |
| API | apiBasePath | デフォルト '/api/nuxt-users' |
| テーブル | tables.users、tables.personalAccessTokens、tables.passwordResetTokens、tables.migrations | カスタムテーブル名 |
| メーラー | mailer | パスワードリセットメール用の Nodemailer 設定 |
| URL | passwordResetUrl、emailConfirmationUrl | リダイレクト用パス |
| 認証 | auth.whitelist | 公開ルート(例:['/register']); /login は常に公開 |
| 認証 | auth.tokenExpiration | 分(デフォルト 1440) |
| 認証 | auth.rememberMeExpiration | 日(デフォルト 30) |
| 認証 | auth.permissions | ロール → パス(例:admin: ['*']、user: ['/profile']) |
| 認証 | auth.google | Google OAuth:clientId、clientSecret、callbackUrl など |
| パスワード | passwordValidation | minLength、requireUppercase、requireLowercase、requireNumbers、requireSpecialChars、preventCommonPasswords |
| データ | hardDelete | true = 物理削除、false = 論理削除(デフォルト) |
| ロケール | locale.default、locale.texts、locale.fallbackLocale | ローカライゼーション |
ランタイム設定もサポートされます:環境ベースまたはサーバーのみの設定には runtimeConfig.nuxtUsers を使用します。CLI は プロジェクトルート から loadNuxt が成功したときそれをマージします。loadNuxt が失敗した場合(nuxt.config がない、出力のみのデプロイ、または --omit=dev の下に nuxt/@nuxt/kit がない)、CLI は DB_* 環境変数および他のオプションの デフォルト にフォールバックします — 設定からのカスタム tables / passwordValidation は適用されないかもしれません。docs/user-guide/configuration.md(CLI セクション)を参照してください。
CLI コマンド
プロジェクトルートから実行して、nuxt.config.ts(およびオプションで .env)が検出されるようにしてください。
-
マイグレーション
npx nuxt-users migrate -
ユーザー作成
npx nuxt-users create-user -e <email> -n "<name>" -p <password> [-r <role>] -
レガシー/テーブル作成(古いセットアップで必要な場合)
npx nuxt-users create-users-table npx nuxt-users create-personal-access-tokens-table npx nuxt-users create-password-reset-tokens-table npx nuxt-users create-migrations-table
本番環境: CLI は
.output/のみに含まれていません;Node を実行する場所にnuxt-users(およびピア)がインストールされている必要があります。npxは不在の場合パッケージをダウンロードする場合があります。package.jsonスクリプト("nuxt-users": "nuxt-users")はローカルバイナリを使用します。完全な設定 にはnuxt.configとリゾルバブルな@nuxt/kitを備えたアプリルートが必要です;ビルドのみまたはomit=devデプロイはしばしば 環境フォールバック(DB_*)に当たります — 設定ドキュメントを参照してください。
コンポーザブル(自動インポート)
- useAuthentication() —
user、isAuthenticated、login(user, rememberMe?)、logout()、fetchUser(useSSR?)、initializeUser() - useUsers() — 管理者:
users、pagination、loading、error、fetchUsers(page?, limit?)、updateUser、addUser、removeUser(userId) - usePublicPaths() —
getPublicPaths()、getAccessiblePaths()、isPublicPath(path)、isAccessiblePath(path, method?) - usePasswordValidation(moduleOptions?, options?) —
validate(password)、isValid、errors、strength、score、clearValidation() - useNuxtUsersLocale() —
t(key, params?)、currentLocale、fallbackLocale
コンポーネント
NUsersLoginForm— ログインフォーム;@successを使用してuseAuthentication()からlogin(user)を呼び出しますNUsersLogoutLink— ログアウトリンク/ボタンNUsersProfileInfo— プロフィール表示NUsersResetPasswordForm— パスワードリセットフォームNUsersList— ユーザーリスト表示(管理者)NUsersUserForm— ユーザー作成/編集フォーム
よくあるエッジケース
-
ユーザーが保護されたルートでログインページにリダイレクトされる
nuxtUsers.auth.permissionsを設定して、各ロールが必要なルートにアクセスできるようにします(例:admin: ['*']、user: ['/profile'])。 -
CLI が設定が見つからないと言う、または間違ったテーブル/パスワードルールを使用する
nuxt.configを含むディレクトリから CLI を実行します。.output/のみをデプロイするか、本番環境でnuxtを除外して実行する場合、loadNuxtは失敗し、CLI はDB_*フォールバックと非コネクタオプションの デフォルト を使用します。DB_*を設定するか(ドキュメントを参照)、完全なアプリチェックアウトで CI から CLI を実行します。 -
マイグレーションテーブルがない
プロジェクトルートからnpx nuxt-users migrateを一度実行します。マイグレーションテーブルがない場合、モジュールは実行時に警告します。 -
パスワード検証が厳しすぎる
nuxtUsers.passwordValidationを調整します(例:minLengthを下げる、requireUppercase/requireNumbers/requireSpecialCharsをfalseに設定)。良い理由なく本番環境で全てのチェックを無効化しないでください。 -
データベースドライバーエラー
正しいピアをインストールします:SQLite →better-sqlite3、MySQL →mysql2、PostgreSQL →pg。connector.nameとconnector.optionsがドライバーと環境(例:正しいホスト、ポート、認証情報)に一致することを確認します。 -
Google OAuth
nuxtUsers.auth.googleをclientId、clientSecret、およびオプションでcallbackUrl、successRedirect、errorRedirect、scopes、allowAutoRegistrationで設定します。
ファイルリファレンス
- プロジェクト LLM コンテキストと設定タイプ:リポルートの
llms.txt - 完全なドキュメント:https://nuxt-users.webmania.cc/
- はじめに例:
../../docs/user-guide/getting-started.md、../../docs/examples/basic-setup.md - 認可:
../../docs/user-guide/authorization.md - 設定詳細:
../../docs/user-guide/configuration.md
nuxtUsers の設定とパーミッションをアプリのロールとルートと同期に保つ;カスタム認証ロジックを実装する際はガード句と早期リターンを使用します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- rrd108
- リポジトリ
- rrd108/nuxt-users
- ライセンス
- MIT
- 最終更新
- 2026/5/11
Source: https://github.com/rrd108/nuxt-users / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。