mcpField
N
nuxt-users

nuxt-users

github.com/onmaxセキュリティ723200 回インストール今日更新
リポジトリ

nuxt-users について

nuxt-users は、Nuxt の認証、ロール、アカウント管理の設定を支援するスキルです。設定方法に加え、CLI 操作、コンポーザブル、UI コンポーネントを案内します。

主な機能

  1. 01認証とロールの設定
  2. 02マイグレーションとユーザー作成
  3. 03認証コンポーザブルの利用
  4. 04ログイン・プロフィールUIの追加
  5. 05パスワード検証とローカライズ

活用シーン

  1. 01アカウントのログインとログアウト設定
  2. 02ユーザーロールによるルート制限
  3. 03ユーザーアカウントの作成と管理
  4. 04パスワードリセットと確認の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/onmax/nuxt-skills --skill nuxt-users

インストール後、Claude Code で/nuxt-usersを入力して読み込まれたか確認します。

詳細

Nuxt Users スキル

初期設定

  1. モジュールとピア依存関係をインストールする

    npm install nuxt-users
    npm install db0 better-sqlite3 bcrypt nodemailer
    

    MySQL または PostgreSQL を使用する場合は、必要に応じて better-sqlite3 の代わりに、または追加で、対応するドライバー(mysql2 または pg)をインストールします。

  2. nuxt.config.ts でモジュールを登録する

    export default defineNuxtConfig({
      modules: ['nuxt-users']
    })
    
  3. マイグレーションを実行する プロジェクトルート(nuxt.config.ts がある場所)から実行します。

    npx nuxt-users migrate
    
  4. ユーザーを 1 人以上作成する

    npx nuxt-users create-user -e [email protected] -n "Admin User" -p password123 -r admin
    

    フラグ:-e はメールアドレス、-n は名前、-p はパスワード、-r はロール(任意)です。

  5. 権限を設定する

    export default defineNuxtConfig({
      modules: ['nuxt-users'],
      nuxtUsers: {
        auth: {
          permissions: {
            admin: ['*'],
            user: ['/profile', '/api/nuxt-users/me']
          }
        }
      }
    })
    
  6. ページでログインを使用する

    • NUsersLoginForm コンポーネントを使用し、@success を処理して useAuthentication() の login(user) を呼び出します。
    • ログイン後にリダイレクトすることもできます(例:navigateTo('/'))。

設定リファレンス(nuxt.config.ts)

すべてのオプションは、nuxt.config.ts の nuxtUsers 配下にあります。

領域キー備考
データベースconnector.name'sqlite' | 'mysql' | 'postgresql'
データベースconnector.optionspath(SQLite)、または host、port、user、password、database(MySQL/PostgreSQL)
APIapiBasePathデフォルトは '/api/nuxt-users'
テーブルtables.users、tables.personalAccessTokens、tables.passwordResetTokens、tables.migrationsカスタムテーブル名
メーラーmailerパスワードリセットメール用の Nodemailer 設定
URLpasswordResetUrl、emailConfirmationUrlリダイレクト先のパス
認証auth.whitelist公開ルート(例:['/register'])。/login は常に公開されます
認証auth.tokenExpiration分単位(デフォルトは 1440)
認証auth.rememberMeExpiration日単位(デフォルトは 30)
認証auth.permissionsロール → パス(例:admin: ['*']、user: ['/profile'])。キーは事前定義されたロールです。
認証auth.allowCustomRolesデフォルトは false です。true の場合、作成/更新 API と NUsersUserForm では、permissions に記載されていないロールも受け付けます。空の permissions(ブートストラップ時)では、すでに任意のロールを受け付けます。
認証auth.googleGoogle OAuth:clientId、clientSecret、callbackUrl など
パスワードpasswordValidationminLength、requireUppercase、requireLowercase、requireNumbers、requireSpecialChars、preventCommonPasswords
データhardDeletetrue = 完全削除、false = 論理削除(デフォルト)
ロケールlocale.default、locale.texts、locale.fallbackLocaleローカライズ
ランタイム設定もサポートされています。環境変数ベースまたはサーバー専用の設定には、runtimeConfig.nuxtUsers を使用してください。

CLI コマンド

nuxt.config.ts(および任意で .env)を見つけられるように、プロジェクトのルートから実行してください。

  • マイグレーション

    npx nuxt-users migrate
    
  • ユーザーの作成

    npx nuxt-users create-user -e <email> -n "<name>" -p <password> [-r <role>]
    

    auth.allowCustomRoles が true(または権限が空)でない限り、ロールは auth.permissions のキーと一致している必要があります。

  • レガシー/テーブルの作成

    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 を実行する場所に nuxt-users(およびピア依存関係)がインストールされている必要があります。.output/ 内にはバンドルされません。完全な設定には nuxt.config を含むアプリのルートが必要です。ビルドのみのデプロイや --omit=dev を使ったデプロイでは、DB_* 環境変数にフォールバックします。docs/user-guide/configuration.md を参照してください。

コンポーザブル(自動インポート)

  • 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 — ログインフォーム。useAuthentication() の login(user) を呼び出すには @success を使用します
  • NUsersLogoutLink — ログアウトリンク/ボタン
  • NUsersProfileInfo — プロフィールを表示します
  • NUsersResetPasswordForm — パスワードリセットフォーム
  • NUsersList — ユーザー一覧(管理者向け)
  • NUsersUserForm — ユーザーの作成/編集フォーム。ロールの選択肢は auth.permissions のキーから生成されます。カスタムの自由入力ロールを選択肢にするには、auth.allowCustomRoles: true を設定してください

トラブルシューティング

症状対処法
保護されたルートでログイン画面にリダイレクトされる各ロールが必要なルートにアクセスできるよう、auth.permissions を設定してください
CLI の設定が見つからない/テーブルが違うnuxt.config があるディレクトリから CLI を実行してください。上記の本番環境に関する注記を参照してください
マイグレーションテーブルがないプロジェクトのルートから npx nuxt-users migrate を実行してください
データベースドライバーのエラー適切なピア依存関係をインストールしてください:SQLite → better-sqlite3、MySQL → mysql2、PostgreSQL → pg

ファイル参照

  • プロジェクトの 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 の設定と権限は、アプリのロールやルートと同期させてください。カスタムの認証ロジックを実装する際は、ガード節と早期リターンを使用してください。

コメント