MCPcopy Index your code
hub / github.com/auth0/angular2-jwt

github.com/auth0/angular2-jwt @v5.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v5.2.0 ↗ · + Follow
48 symbols 100 edges 23 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Helper library for handling JWTs in Angular applications

Release codecov Downloads License CircleCI

:books: Documentation - :rocket: Getting Started - :computer: API Reference - :speech_balloon: Feedback

Documentation

  • Examples - code samples for common angular-jwt authentication scenario's.
  • Docs site - explore our docs site and learn more about Auth0.

This library provides an HttpInterceptor which automatically attaches a JSON Web Token to HttpClient requests.

This library does not have any functionality for (or opinion about) implementing user authentication and retrieving JWTs to begin with. Those details will vary depending on your setup, but in most cases, you will use a regular HTTP request to authenticate your users and then save their JWTs in local storage or in a cookie if successful.

Getting started

Requirements

This project only supports the actively supported versions of Angular as stated in the Angular documentation. Whilst other versions might be compatible they are not actively supported

Installation

# installation with npm
npm install @auth0/angular-jwt

# installation with yarn
yarn add @auth0/angular-jwt

Configure the SDK

Import the JwtModule module and add it to your imports list. Call the forRoot method and provide a tokenGetter function. You must also add any domains to the allowedDomains, that you want to make requests to by specifying an allowedDomains array.

Be sure to import the HttpClientModule as well.

import { JwtModule } from "@auth0/angular-jwt";
import { HttpClientModule } from "@angular/common/http";

export function tokenGetter() {
  return localStorage.getItem("access_token");
}

@NgModule({
  bootstrap: [AppComponent],
  imports: [
    // ...
    HttpClientModule,
    JwtModule.forRoot({
      config: {
        tokenGetter: tokenGetter,
        allowedDomains: ["example.com"],
        disallowedRoutes: ["http://example.com/examplebadroute/"],
      },
    }),
  ],
})
export class AppModule {}

Any requests sent using Angular's HttpClient will automatically have a token attached as an Authorization header.

import { HttpClient } from "@angular/common/http";

export class AppComponent {
  constructor(public http: HttpClient) {}

  ping() {
    this.http.get("http://example.com/api/things").subscribe(
      (data) => console.log(data),
      (err) => console.log(err)
    );
  }
}

Using with Standalone Components

If you are using bootstrapApplication to bootstrap your application using a standalone component, you will need a slightly different way to integrate our SDK:

import { JwtModule } from "@auth0/angular-jwt";
import { provideHttpClient, withInterceptorsFromDi } from "@angular/common/http";

export function tokenGetter() {
  return localStorage.getItem("access_token");
}

bootstrapApplication(AppComponent, {
    providers: [
        // ...
        importProvidersFrom(
            JwtModule.forRoot({
                config: {
                    tokenGetter: tokenGetter,
                    allowedDomains: ["example.com"],
                    disallowedRoutes: ["http://example.com/examplebadroute/"],
                },
            }),
        ),
        provideHttpClient(
            withInterceptorsFromDi()
        ),
    ],
});

As you can see, the differences are that: - The SDK's module is included trough importProvidersFrom. - In order to use the SDK's interceptor, provideHttpClient needs to be called with withInterceptorsFromDi.

API reference

Read our API reference to get a better understanding on how to use this SDK.

Feedback

Contributing

We appreciate feedback and contribution to this repo! Before you get started, please see the following:

Raise an issue

To provide feedback or report a bug, please raise an issue on our issue tracker.

Vulnerability Reporting

Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.


<img alt="Auth0 Logo" src="https://cdn.auth0.com/website/sdks/logos/auth0_light_mode.png" width="150">

Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout Why Auth0?

This project is licensed under the MIT license. See the LICENSE file for more info.

Extension points exported contracts — how you extend this code

Token (Interface)
(no doc)
projects/angular-jwt/src/index.test-d.ts
JwtConfig (Interface)
(no doc)
projects/angular-jwt/src/lib/angular-jwt.module.ts
JwtModuleOptions (Interface)
(no doc)
projects/angular-jwt/src/lib/angular-jwt.module.ts

Core symbols most depended-on inside this repo

decodeToken
called by 20
projects/angular-jwt/src/lib/jwthelper.service.ts
isTokenExpired
called by 17
projects/angular-jwt/src/lib/jwthelper.service.ts
getTokenExpirationDate
called by 13
projects/angular-jwt/src/lib/jwthelper.service.ts
forRoot
called by 7
projects/angular-jwt/src/lib/angular-jwt.module.ts
testRequest
called by 7
src/app/services/example-http.service.ts
_decodeToken
called by 2
projects/angular-jwt/src/lib/jwthelper.service.ts
_getTokenExpirationDate
called by 2
projects/angular-jwt/src/lib/jwthelper.service.ts
_isTokenExpired
called by 2
projects/angular-jwt/src/lib/jwthelper.service.ts

Shape

Method 23
Class 14
Function 8
Interface 3

Languages

TypeScript100%

Modules by API surface

projects/angular-jwt/src/lib/jwthelper.service.ts13 symbols
projects/angular-jwt/src/lib/jwt.interceptor.ts8 symbols
projects/angular-jwt/src/lib/angular-jwt.module.ts6 symbols
src/app/app.module.ts5 symbols
src/app/services/example-http.service.ts4 symbols
e2e/src/app.po.ts4 symbols
src/app/services/example-http.service.spec.ts3 symbols
src/app/app.component.ts3 symbols
projects/angular-jwt/src/index.test-d.ts1 symbols
e2e/protractor.conf.js1 symbols

For agents

$ claude mcp add angular2-jwt \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact