Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/auth0/angular2-jwt
Helper library for handling JWTs in Angular apps
https://github.com/auth0/angular2-jwt
angular dx-sdk jwt
Last synced: 4 days ago
JSON representation
Helper library for handling JWTs in Angular apps
- Host: GitHub
- URL: https://github.com/auth0/angular2-jwt
- Owner: auth0
- License: mit
- Created: 2015-10-26T05:37:39.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-07-30T09:48:42.000Z (5 months ago)
- Last Synced: 2024-10-29T10:58:11.815Z (about 1 month ago)
- Topics: angular, dx-sdk, jwt
- Language: TypeScript
- Homepage:
- Size: 2.74 MB
- Stars: 2,634
- Watchers: 87
- Forks: 485
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- my-awesome-list - angular2-jwt
- awesome-angular-components - ang2-jwt - Helper library for handling JWTs in Angular 2 apps. (Uncategorized / Uncategorized)
- awesome-angular-components - ang2-jwt - Helper library for handling JWTs in Angular 2 apps. (Uncategorized / Uncategorized)
- awesome-ionic2-components - JSON Web Token (JWT)
- Awesome - JSON Web Token (JWT)
- awesome-jwt - angular2-jwt - Helper library for handling JWTs in Angular 2 apps. (Libraries / JavaScript)
- awesome-angular - angular2-jwt - Library for sending authenticated HTTP requests and decoding JWTs. (Table of contents / Angular)
- fucking-awesome-angular - angular2-jwt - Library for sending authenticated HTTP requests and decoding JWTs. (Table of contents / Angular)
- fucking-awesome-angular - angular2-jwt - Helper library for handling JWTs in Angular apps. (Table of contents / Angular)
README
![Helper library for handling JWTs in Angular applications](https://cdn.auth0.com/website/sdks/banners/angular-jwt-banner.png)
![Release](https://img.shields.io/github/v/release/auth0/angular2-jwt)
[![codecov](https://codecov.io/gh/auth0/angular2-jwt/branch/main/graph/badge.svg?token=wnauXldcdE)](https://codecov.io/gh/auth0/angular2-jwt)
![Downloads](https://img.shields.io/npm/dw/@auth0/angular-jwt)
[![License](https://img.shields.io/:license-MIT-blue.svg?style=flat)](https://opensource.org/licenses/MIT)
[![CircleCI](https://img.shields.io/circleci/build/github/auth0/angular2-jwt)](https://circleci.com/gh/auth0/angular2-jwt):books: [Documentation](#documentation) - :rocket: [Getting Started](#getting-started) - :computer: [API Reference](#api-reference) - :speech_balloon: [Feedback](#feedback)
## Documentation
- [Examples](https://github.com/auth0/angular2-jwt/blob/main/EXAMPLES.md) - code samples for common angular-jwt authentication scenario's.
- [Docs site](https://www.auth0.com/docs) - explore our docs site and learn more about Auth0.This library provides an `HttpInterceptor` which automatically attaches a [JSON Web Token](https://jwt.io) 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](https://angular.io/guide/releases#actively-supported-versions). Whilst other versions might be compatible they are not actively supported### Installation
```bash
# 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.
```ts
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.
```ts
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:```ts
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](https://github.com/auth0/angular2-jwt/blob/main/API.md) 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:
- [Auth0's general contribution guidelines](https://github.com/auth0/open-source-template/blob/master/GENERAL-CONTRIBUTING.md)
- [Auth0's code of conduct guidelines](https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md)
- [This repo's contribution guide](https://github.com/auth0/angular2-jwt/blob/main/CONTRIBUTING.md)
### Raise an issueTo provide feedback or report a bug, please [raise an issue on our issue tracker](https://github.com/auth0/angular2-jwt/issues).
### Vulnerability Reporting
Please do not report security vulnerabilities on the public GitHub issue tracker. The [Responsible Disclosure Program](https://auth0.com/responsible-disclosure-policy) details the procedure for disclosing security issues.
---
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.