auth0-angular

bởi auth0

Sử dụng khi thêm xác thực vào ứng dụng Angular với route guards và HTTP interceptors - tích hợp SDK @auth0/auth0-angular cho SPA

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

Auth0 Angular Integration

Add authentication to Angular applications using @auth0/auth0-angular.


Prerequisites

  • Angular 13+ application
  • Auth0 account and application configured
  • If you don't have Auth0 set up yet, use the auth0-quickstart skill first

When NOT to Use

  • AngularJS (1.x) - This SDK requires Angular 13+, use legacy solutions for AngularJS
  • Mobile applications - Use auth0-react-native for React Native or native SDKs for Ionic
  • Backend APIs - Use JWT validation middleware for your server language

Quick Start Workflow

1. Install SDK

npm install @auth0/auth0-angular

2. Configure Environment

For automated setup with Auth0 CLI, see Setup Guide for complete scripts.

For manual setup:

Update 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. Configure Auth Module

For standalone components (Angular 14+):

Update 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
    })
  ]
};

For NgModule-based apps:

Update 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. Add Authentication UI

Update 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. Test Authentication

Start your dev server and test the login flow:

ng serve

Detailed Documentation

  • Setup Guide - Automated setup scripts (Bash/PowerShell), CLI commands, manual configuration
  • Integration Guide - Protected routes with guards, HTTP interceptors, error handling
  • API Reference - Complete SDK API, configuration options, services reference, testing strategies

Common Mistakes

MistakeFix
Forgot to add redirect URI in Auth0 DashboardAdd your application URL (e.g., http://localhost:4200, https://app.example.com) to Allowed Callback URLs in Auth0 Dashboard
Not configuring AuthModule properlyMust call AuthModule.forRoot() in NgModule or provideAuth0() in standalone config
Accessing auth before initializationUse isLoading$ observable to wait for SDK initialization
Storing tokens manuallyNever manually store tokens - SDK handles secure storage automatically
No token sent to APIUse either authHttpInterceptorFn for automatic token attachment, or getAccessTokenSilently() for manual control — see Integration Guide
Route guard not protecting routesApply AuthGuard (or authGuardFn) to protected routes in routing config

Related Skills

  • auth0-quickstart - Basic Auth0 setup
  • auth0-migration - Migrate from another auth provider
  • auth0-mfa - Add Multi-Factor Authentication
  • auth0-cli - Manage Auth0 resources from the terminal

Quick Reference

Core Services:

  • AuthService - Main authentication service
  • isAuthenticated$ - Observable check if user is logged in
  • user$ - Observable user profile information
  • loginWithRedirect() - Initiate login
  • logout() - Log out user
  • getAccessTokenSilently() - Get access token manually (alternative to HTTP interceptor)

Common Use Cases:


References

Thêm skills từ auth0

acul-screen-generator
auth0
Tạo ra các triển khai màn hình Auth0 Advanced Custom Universal Login (ACUL) hoàn chỉnh, có thương hiệu bằng cách sử dụng React hoặc Vanilla JS SDK. Sử dụng khi nhà phát triển yêu cầu…
official
auth0-android
auth0
Sử dụng khi thêm xác thực vào ứng dụng Android (Kotlin/Java) với Web Auth, thông tin xác thực được bảo vệ bằng sinh trắc học và MFA - tích hợp…
official
auth0-aspnetcore-api
auth0
Sử dụng khi bảo vệ các điểm cuối ASP.NET Core Web API bằng xác thực token JWT Bearer, kiểm tra phạm vi/quyền, hoặc xác thực không trạng thái - tích hợp…
official
auth0-cli
auth0
Tài liệu tham khảo cho các lệnh Auth0 CLI — ứng dụng, api, người dùng, vai trò, tổ chức, hành động, nhật ký, tên miền tùy chỉnh, universal-login, terraform, chế độ API thô, và --json…
official
auth0-expo
auth0
Sử dụng khi thêm xác thực vào ứng dụng di động Expo (React Native) — đăng nhập, đăng xuất, phiên người dùng, tuyến đường được bảo vệ, sinh trắc học hoặc quản lý token. Tích hợp…
official
auth0-express
auth0
Sử dụng khi thêm xác thực (đăng nhập, đăng xuất, route được bảo vệ) vào ứng dụng web Express.js - tích hợp express-openid-connect cho xác thực dựa trên phiên.
official
auth0-fastapi-api
auth0
Sử dụng khi bảo vệ các điểm cuối API FastAPI với xác thực token JWT Bearer, kiểm tra phạm vi/quyền, hoặc xác thực phi trạng thái - tích hợp auth0-fastapi-api cho REST…
official
auth0-fastify
auth0
Sử dụng khi thêm xác thực (đăng nhập, đăng xuất, route được bảo vệ) vào ứng dụng web Fastify - tích hợp @auth0/auth0-fastify cho xác thực dựa trên phiên. Dành cho…
official