auth0-angular
Use when adding Auth0 login, logout, route guards, or HTTP interceptors to an Angular application. Integrates @auth0/auth0-angular for SPAs — use even if the user says "protect my Angular routes" or "add authentication to Angular" without naming the SDK.
How do I install this agent skill?
npx skills add https://github.com/auth0/agent-skills --skill auth0-angularIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides safe and standard instructions for integrating Auth0 authentication into Angular applications. It includes guides for SDK installation, environment configuration, and automated setup using official Auth0 tooling.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 1 issue
- Runlayerwarn
4/4 files flagged
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
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-quickstartskill first
When NOT to Use
- AngularJS (1.x) - This SDK requires Angular 13+, use legacy solutions for AngularJS
- Mobile applications - Use
auth0-react-nativefor 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
| Mistake | Fix |
|---|---|
| Forgot to add redirect URI in Auth0 Dashboard | Add your application URL (e.g., http://localhost:4200, https://app.example.com) to Allowed Callback URLs in Auth0 Dashboard |
| Not configuring AuthModule properly | Must call AuthModule.forRoot() in NgModule or provideAuth0() in standalone config |
| Accessing auth before initialization | Use isLoading$ observable to wait for SDK initialization |
| Storing tokens manually | Never manually store tokens - SDK handles secure storage automatically |
| No token sent to API | Use either authHttpInterceptorFn for automatic token attachment, or getAccessTokenSilently() for manual control — see Integration Guide |
| Route guard not protecting routes | Apply AuthGuard (or authGuardFn) to protected routes in routing config |
Related Skills
auth0-quickstart- Basic Auth0 setupauth0-migration- Migrate from another auth providerauth0-mfa- Add Multi-Factor Authenticationauth0-cli- Manage Auth0 resources from the terminal
Quick Reference
Core Services:
AuthService- Main authentication serviceisAuthenticated$- Observable check if user is logged inuser$- Observable user profile informationloginWithRedirect()- Initiate loginlogout()- Log out usergetAccessTokenSilently()- Get access token manually (alternative to HTTP interceptor)
Common Use Cases:
- Login/Logout buttons → See Step 4 above
- Protected routes with guards → Integration Guide
- Calling a protected API → Integration Guide
- Error handling → Integration Guide
References
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/auth0/agent-skills/auth0-angular">View auth0-angular on skillZs</a>