mcpField
A
auth0-angular

auth0-angular

github.com/auth0セキュリティ55762 回インストール1 日前に更新
リポジトリ

auth0-angular について

@auth0/auth0-angular を使い、Angular 13 以降のアプリに Auth0 認証を導入するガイドです。SDK 設定、認証 UI、保護されたルート、API へのトークン送信方法を扱います。

主な機能

  1. 01Angular Auth0 SDK の設定
  2. 02スタンドアロン構成と NgModule 構成への対応
  3. 03AuthGuard によるルート保護
  4. 04インターセプターまたはサービスでのトークン取得

活用シーン

  1. 01Angular アプリへのログインとログアウトの追加
  2. 02アプリ内の特定ルートの保護
  3. 03保護された API へのアクセストークン送信

インストール

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

$npx skills add https://github.com/auth0/agent-skills --skill auth0-angular

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api.md
integration.md
setup.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 インターセプターの代替)

よくある用途:

  • ログイン/ログアウトボタン → 上記のステップ 4 を参照
  • ガードを使った保護対象ルート → 統合ガイド
  • 保護対象 API の呼び出し → 統合ガイド
  • エラー処理 → 統合ガイド

参考資料

コメント