auth0-angular について
@auth0/auth0-angular を使い、Angular 13 以降のアプリに Auth0 認証を導入するガイドです。SDK 設定、認証 UI、保護されたルート、API へのトークン送信方法を扱います。
主な機能
- 01Angular Auth0 SDK の設定
- 02スタンドアロン構成と NgModule 構成への対応
- 03AuthGuard によるルート保護
- 04インターセプターまたはサービスでのトークン取得
活用シーン
- 01Angular アプリへのログインとログアウトの追加
- 02アプリ内の特定ルートの保護
- 03保護された API へのアクセストークン送信
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ auth0/ agent-skills --skill auth0-angularインストール後、Claude Code で/auth0-angularを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api.mdintegration.mdsetup.md詳細
Auth0 Angular 統合
@auth0/auth0-angular を使用して、Angular アプリケーションに認証を追加します。
前提条件
- Angular 13 以降のアプリケーション
- Auth0 アカウントと設定済みのアプリケーション
- Auth0 のセットアップがまだの場合は、まず
auth0-quickstartスキルを使用してください
使用しない場合
- AngularJS(1.x) - この SDK には Angular 13 以降が必要です。AngularJS にはレガシーソリューションを使用してください
- モバイルアプリケーション - React Native には
auth0-react-nativeを、Ionic にはネイティブ SDK を使用してください - バックエンド API - サーバーの言語に対応した JWT 検証ミドルウェアを使用してください
クイックスタートのワークフロー
1. SDK をインストールする
npm install @auth0/auth0-angular
2. 環境を設定する
Auth0 CLI を使用した自動セットアップについては、完全なスクリプトを記載したセットアップガイドを参照してください。
手動でセットアップする場合:
src/environments/environment.ts を更新します。
export const environment = {
production: false,
auth0: {
domain: 'your-tenant.auth0.com',
clientId: 'your-client-id',
authorizationParams: {
redirect_uri: window.location.origin
}
}
};
3. 認証モジュールを設定する
スタンドアロンコンポーネントの場合(Angular 14 以降):
src/app/app.config.ts を更新します。
import { ApplicationConfig } from '@angular/core';
import { provideAuth0 } from '@auth0/auth0-angular';
import { environment } from '../environments/environment';
export const appConfig: ApplicationConfig = {
providers: [
provideAuth0({
domain: environment.auth0.domain,
clientId: environment.auth0.clientId,
authorizationParams: environment.auth0.authorizationParams
})
]
};
NgModule ベースのアプリの場合:
src/app/app.module.ts を更新します。
import { AuthModule } from '@auth0/auth0-angular';
import { environment } from '../environments/environment';
@NgModule({
imports: [
AuthModule.forRoot({
domain: environment.auth0.domain,
clientId: environment.auth0.clientId,
authorizationParams: environment.auth0.authorizationParams
})
]
})
export class AppModule {}
4. 認証 UI を追加する
src/app/app.component.ts を更新します。
import { Component } from '@angular/core';
import { AuthService } from '@auth0/auth0-angular';
@Component({
selector: 'app-root',
template: `
<div *ngIf="auth.isLoading$ | async; else loaded">
<p>Loading...</p>
</div>
<ng-template #loaded>
<ng-container *ngIf="auth.isAuthenticated$ | async; else loggedOut">
<div *ngIf="auth.user$ | async as user">
<img [src]="user.picture" [alt]="user.name" />
<h2>Welcome, {{ user.name }}!</h2>
<button (click)="logout()">Logout</button>
</div>
</ng-container>
<ng-template #loggedOut">
<button (click)="login()">Login</button>
</ng-template>
</ng-template>
`
})
export class AppComponent {
constructor(public auth: AuthService) {}
login(): void {
this.auth.loginWithRedirect();
}
logout(): void {
this.auth.logout({ logoutParams: { returnTo: window.location.origin } });
}
}
5. 認証をテストする
開発サーバーを起動し、ログインのフローをテストします。
ng serve
詳細ドキュメント
- セットアップガイド - 自動セットアップスクリプト(Bash/PowerShell)、CLI コマンド、手動設定
- 統合ガイド - ガードを使った保護対象ルート、HTTP インターセプター、エラー処理
- API リファレンス - SDK API 全般、設定オプション、サービスのリファレンス、テスト戦略
よくある間違い
| 間違い | 修正方法 |
|---|---|
| Auth0 Dashboard にリダイレクト URI を追加し忘れた | アプリケーションの URL(例:http://localhost:4200、https://app.example.com)を Auth0 Dashboard の Allowed Callback URLs に追加します |
| AuthModule が適切に設定されていない | NgModule では AuthModule.forRoot() を、スタンドアロン設定では provideAuth0() を呼び出す必要があります |
| 初期化前に認証にアクセスしている | isLoading$ オブザーバブルを使用して、SDK の初期化を待ちます |
| トークンを手動で保存している | トークンを手動で保存しないでください。SDK が安全なストレージを自動的に処理します |
| API にトークンが送信されない | トークンを自動的に付与するには authHttpInterceptorFn を、手動で制御するには getAccessTokenSilently() を使用します — 統合ガイドを参照してください |
| ルートガードでルートが保護されていない | ルーティング設定で保護対象ルートに AuthGuard(または authGuardFn)を適用します |
関連スキル
auth0-quickstart- Auth0 の基本的なセットアップauth0-migration- 別の認証プロバイダーから移行するauth0-mfa- 多要素認証を追加するauth0-cli- ターミナルから Auth0 リソースを管理する
クイックリファレンス
主要サービス:
AuthService- メインの認証サービスisAuthenticated$- ユーザーがログインしているかを確認するオブザーバブルuser$- ユーザープロフィール情報のオブザーバブルloginWithRedirect()- ログインを開始するlogout()- ユーザーをログアウトするgetAccessTokenSilently()- アクセストークンを手動で取得する(HTTP インターセプターの代替)
よくある用途:
参考資料
コメント
Markdown 対応