auth0-vue について
Vue 3のシングルページアプリ開発者向けAuth0連携スキルです。@auth0/auth0-vueの設定を通じて、リダイレクトログイン、保護ルート、API呼び出し用トークンの利用を案内します。
主な機能
- 01@auth0/auth0-vueとの連携
- 02リダイレクトログインとログアウトの設定
- 03コンポーザブルによる認証状態の取得
- 04API用アクセストークンの取得
活用シーン
- 01Vue 3アプリにログインUIを追加
- 02保護ルートを設定
- 03アクセストークンでAPIを呼び出す
- 04認証の読み込み状態とエラーを処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ auth0/ agent-skills --skill auth0-vueインストール後、Claude Code で/auth0-vueを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api.mdintegration.mdsetup.md詳細
Auth0 Vue.js の統合
@auth0/auth0-vue を使用して、Vue.js 3 のシングルページアプリケーションに認証を追加します。
前提条件
- Vue 3 以降のアプリケーション(Vite または Vue CLI)
- Auth0 アカウントと設定済みのアプリケーション
- Auth0 の設定がまだの場合は、まず
auth0-quickstartスキルを使用してください
使用しない場合
- サーバーサイドレンダリングされた Vue アプリ - SSR のパターンについては、Auth0 Nuxt.js ガイドを参照してください
- Vue 2 アプリケーション - この SDK には Vue 3 以降が必要です。レガシーの @auth0/auth0-spa-js ラッパーを使用してください
- 埋め込み型ログイン - この SDK は Auth0 Universal Login(リダイレクトベース)を使用します
- バックエンド API 認証 - 代わりに express-openid-connect または JWT 検証を使用してください
クイックスタートのワークフロー
1. SDK をインストールする
npm install @auth0/auth0-vue
2. 環境を設定する
Auth0 CLI を使った自動セットアップについては、完全なスクリプトを記載したセットアップガイドを参照してください。
手動で設定する場合:
.env ファイルを作成します。
VITE_AUTH0_DOMAIN=your-tenant.auth0.com
VITE_AUTH0_CLIENT_ID=your-client-id
3. Auth0 プラグインを設定する
src/main.ts を更新します。
import { createApp } from 'vue';
import { createAuth0 } from '@auth0/auth0-vue';
import App from './App.vue';
const app = createApp(App);
app.use(
createAuth0({
domain: import.meta.env.VITE_AUTH0_DOMAIN,
clientId: import.meta.env.VITE_AUTH0_CLIENT_ID,
authorizationParams: {
redirect_uri: window.location.origin
}
})
);
app.mount('#app');
4. 認証 UI を追加する
ログインコンポーネントを作成します。
<script setup lang="ts">
import { useAuth0 } from '@auth0/auth0-vue';
const { loginWithRedirect, logout, isAuthenticated, user, isLoading } = useAuth0();
</script>
<template>
<div>
<div v-if="isLoading">Loading...</div>
<div v-else-if="isAuthenticated">
<img :src="user?.picture" :alt="user?.name" />
<span>Welcome, {{ user?.name }}</span>
<button @click="logout({ logoutParams: { returnTo: window.location.origin }})">
Logout
</button>
</div>
<button v-else @click="loginWithRedirect()">
Login
</button>
</div>
</template>
5. 認証をテストする
開発サーバーを起動し、ログインフローをテストします。
npm run dev
詳細なドキュメント
- セットアップガイド - 自動セットアップスクリプト(Bash/PowerShell)、CLI コマンド、手動設定
- 統合ガイド - 保護されたルート、API 呼び出し、エラー処理、コンポーザブル
- API リファレンス - SDK API の全容、設定オプション、コンポーザブルのリファレンス、テスト方法
よくある間違い
| 間違い | 修正方法 |
|---|---|
| Auth0 Dashboard にリダイレクト URI を追加し忘れる | アプリケーションの URL(例:http://localhost:3000、https://app.example.com)を Auth0 Dashboard の Allowed Callback URLs に追加します |
| 環境変数のプレフィックスを間違える | Vite では VITE_ プレフィックスが必要です。Vue CLI では VUE_APP_ を使用します |
| ローディング状態を処理しない | 認証に依存する UI をレンダリングする前に、必ず isLoading を確認します |
| トークンを localStorage に保存する | トークンを手動で保存しないでください。SDK が安全なストレージを自動的に処理します |
| createAuth0 プラグインの登録が抜けている | アプリをマウントする前に、app.use(createAuth0({...})) を呼び出す必要があります |
| プラグインの読み込み前に認証へアクセスする | 認証に依存するコードを v-if="!isLoading" で囲みます |
関連スキル
auth0-quickstart- Auth0 の基本設定auth0-migration- 別の認証プロバイダーから移行するauth0-mfa- 多要素認証を追加するauth0-dpop- DPoP によるデバイスバインド型のトークンバインディングを追加するauth0-cli- ターミナルから Auth0 リソースを管理する
クイックリファレンス
主要なコンポーザブル:
useAuth0()- メインの認証コンポーザブルisAuthenticated- ユーザーがログインしているかどうかをリアクティブに確認user- リアクティブなユーザープロフィール情報loginWithRedirect()- ログインを開始logout()- ユーザーをログアウトgetAccessTokenSilently()- API 呼び出し用のアクセストークンを取得
DPoP コンポーザブル(createAuth0 の設定で useDpop: true が必要 — auth0-dpopを参照):
createFetcher(config)- DPoP 対応のfetch互換関数を返すgenerateDpopProof(params)- DPoP プルーフ JWT を手動で生成するgetDpopNonce(id?)- 現在保存されている DPoP nonce を取得するsetDpopNonce(nonce, id?)- サーバーから発行された DPoP nonce を保存する
よくあるユースケース:
- ログイン/ログアウトボタン → 上記のステップ 4 を参照
- ナビゲーションガードを使った保護されたルート → 統合ガイド
- トークンを使った API 呼び出し → 統合ガイド
- エラー処理 → 統合ガイド
参考資料
コメント
Markdown 対応