このクイックスタートは現在 Beta 段階です。ぜひフィードバックをお寄せください。
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使うことで、数分で Auth0 認証を自動的に追加できます。インストール:npx skills add https://github.com/auth0/agent-skills --skill auth0-nuxt
次に、AI アシスタントに次のように依頼します。Add Auth0 authentication to my Nuxt app
AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、@auth0/auth0-nuxt のインストール、モジュールの設定、ルートのセットアップを自動的に行います。agent skills の完全なドキュメント →
前提条件: 開始する前に、以下がインストールされていることを確認してください。Nuxt のバージョン互換性: このクイックスタートは Nuxt 3.x ではそのまま動作します。Nuxt 4.x の場合は、Nuxt 4.2 以降を使用していることを確認してください。
このクイックスタートでは、Nuxt.js アプリケーションに Auth0 認証を追加する方法を紹介します。Auth0 Nuxt SDK を使用して、ログイン、ログアウト、ユーザープロファイル機能を備えた安全なシングルページアプリケーションを構築します。
新規プロジェクトを作成する
このクイックスタート用に新しいNuxtプロジェクトを作成するnpx nuxi@latest init auth0-nuxt-app
プロジェクトを開く Auth0 Nuxt SDKをインストールする
npm add @auth0/auth0-nuxt && npm install
Auth0 アプリを設定する
次に、Auth0テナントで新しいアプリを作成し、プロジェクトに環境変数を追加します。CLIコマンドを実行して自動的に行う方法と、Dashboardから手動で行う方法のいずれかを選択できます。Auth0 アプリを作成し、.env ファイルを生成するには、プロジェクトのルートディレクトリで次のシェルコマンドを実行します。AUTH0_APP_NAME="My Nuxt App" && brew tap auth0/auth0-cli && brew install auth0 && auth0 login --no-input && auth0 apps create -n "${AUTH0_APP_NAME}" -t regular -c http://localhost:3000/auth/callback -l http://localhost:3000 -o http://localhost:3000 --reveal-secrets --json > auth0-app-details.json && CLIENT_ID=$(jq -r '.client_id' auth0-app-details.json) && CLIENT_SECRET=$(jq -r '.client_secret' auth0-app-details.json) && DOMAIN=$(auth0 tenants list --json | jq -r '.[] | select(.active == true) | .name') && echo "NUXT_AUTH0_DOMAIN=${DOMAIN}" > .env && echo "NUXT_AUTH0_CLIENT_ID=${CLIENT_ID}" >> .env && echo "NUXT_AUTH0_CLIENT_SECRET=${CLIENT_SECRET}" >> .env && echo "NUXT_AUTH0_SESSION_SECRET=$(openssl rand -hex 64)" >> .env && echo "NUXT_AUTH0_APP_BASE_URL=http://localhost:3000" >> .env && rm auth0-app-details.json && echo ".env file created with your Auth0 details:" && cat .env
始める前に、プロジェクトのルートディレクトリに .env ファイルを作成してくださいNUXT_AUTH0_DOMAIN=YOUR_AUTH0_APP_DOMAIN
NUXT_AUTH0_CLIENT_ID=YOUR_AUTH0_APP_CLIENT_ID
NUXT_AUTH0_CLIENT_SECRET=YOUR_AUTH0_APP_CLIENT_SECRET
NUXT_AUTH0_SESSION_SECRET=YOUR_SESSION_SECRET
NUXT_AUTH0_APP_BASE_URL=http://localhost:3000
- Auth0 Dashboard に移動します
- Applications > Applications > Create Application をクリックします
- ポップアップでアプリの名前を入力し、アプリケーションタイプとして
Regular Web Application を選択して Create をクリックします
- Application Details ページで Settings タブに切り替えます
.env ファイルの値を、ダッシュボードに表示される ドメイン、クライアントID、クライアントシークレット の値に置き換えます
openssl rand -hex 64 を実行してセッションシークレットを生成し、それを NUXT_AUTH0_SESSION_SECRET に使用します
最後に、Application Details ページの Settings タブで、次の URL を設定します。Allowed Callback URLs:http://localhost:3000/auth/callback
許可されているログアウト URL:許可された Web オリジン:Allowed Callback URLs は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致する URL がない場合、ログイン処理は失敗し、ユーザーはアプリにアクセスできず、代わりに Auth0 のエラーページが表示されます。Allowed Logout URLs は、サインアウト時にシームレスなユーザー体験を提供するうえで不可欠です。一致する URL がない場合、ログアウト後にユーザーはアプリケーションへリダイレクトされず、代わりに汎用的な Auth0 ページに留まることになります。Allowed Web Origins は、サイレント認証に不可欠です。これがないと、ユーザーはページを更新したときや、後でアプリに戻ったときにログアウトされます。
Auth0 Nuxt モジュールを設定する
export default defineNuxtConfig({
devtools: { enabled: true },
modules: ['@auth0/auth0-nuxt'],
runtimeConfig: {
auth0: {
domain: process.env.NUXT_AUTH0_DOMAIN,
clientId: process.env.NUXT_AUTH0_CLIENT_ID,
clientSecret: process.env.NUXT_AUTH0_CLIENT_SECRET,
sessionSecret: process.env.NUXT_AUTH0_SESSION_SECRET,
appBaseUrl: process.env.NUXT_AUTH0_APP_BASE_URL,
},
},
})
ログイン、ログアウト、ユーザープロファイル用のコンポーネントを作成する
ファイルを作成するmkdir -p app/components && touch app/components/LoginButton.vue && touch app/components/LogoutButton.vue && touch app/components/UserProfile.vue
次のコードスニペットを追加してください<template>
<a
href="/auth/login"
class="button login"
>
Log In
</a>
</template>
<style scoped>
.button {
padding: 1.1rem 2.8rem;
font-size: 1.2rem;
font-weight: 600;
border-radius: 10px;
border: none;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
text-transform: uppercase;
letter-spacing: 0.08em;
outline: none;
}
.button:focus {
box-shadow: 0 0 0 4px rgba(99, 179, 237, 0.5);
}
.button.login {
background-color: #63b3ed;
color: #1a1e27;
}
.button.login:hover:not(:disabled) {
background-color: #4299e1;
transform: translateY(-5px) scale(1.03);
box-shadow: 0 12px 25px rgba(0, 0, 0, 0.5);
}
.button:disabled {
opacity: 0.7;
cursor: not-allowed;
transform: none;
}
</style>
チェックポイントこれで、localhost で Auth0 のログインページが問題なく動作しているはずです