@codaglobal/ng-jwt-authentication

<a> <br> <h1 align="center">ng-jwt-authentication</h1> </a>

Usage no npm install needed!

<script type="module">
  import codaglobalNgJwtAuthentication from 'https://cdn.skypack.dev/@codaglobal/ng-jwt-authentication';
</script>

README


ng-jwt-authentication

Ingenious plug-in to handle client side JWT token authentication


Table of contents

  1. Getting Started
  2. Installation instructions
  3. Configurations
  4. API
  5. Contributing

Getting Started

ng-jwt-authentication contains all HttpClient methods bundled with JWT authentication.

Installation instructions

Install ng-jwt-authentication from npm:

npm install @codaglobal/ng-jwt-authentication --save

Add needed package to NgModule imports:

import { JwtAuthenticationModule } from 'ng-jwt-authentication';

const config = {
    refreshUrl: string, //optional
    headerKeyName: string, //optional
    accessTokenKey: string, //optional
    refreshTokenKey: string, //optional
    expiresInKey: string, //optional
    jwtResponse: string //optional
};

@NgModule({
  ...
  imports: [JwtAuthenticationModule.forRoot(config),...]
  ...
})

Add service to your page:

import { JwtAuthenticationService } from 'ng-jwt-authentication';

...
constructor(private httpService: JwtAuthenticationService, ...) {
    ...
  }

someMethod() {
    this.httpService.jwtAuthPost('YOUR-API-URL-HERE', body, headers).subscribe((data) => {
      ...
    }, (error) => {
      ...
    });
  }

Configurations

The configurations in the below table should be set globally in module import and passed as config.

Name Type Default Description
refreshUrl String null The URL to send refresh token and get the new access token.
headerKeyName String Authorization [Optional]. Key Name to send the access token in every request.
accessTokenKey String accessToken [Optional]. Key name of access token from the backend response.
refreshTokenKey String refreshToken [Optional]. Key name of refresh token from the backend response.
expiresInKey String expiresIn [Optional]. Key name of expires-in from the backend response.
jwtResponse String body [Optional]. Values: body or header. Send/receive the tokens in body or header in refresh token call.

API

API contents:


saveJwtToken(accessToken: string, refreshToken: string, expiresIn: string)
Method to save Access Token, Refresh Token, and Expires In values in browser cookies.

argument type description
accessToken string Access token
refreshToken string Refresh token
expiresIn string Expires In

jwtAuthGet(url: string, options?: Object)
Method to send GET request with jwt token.

argument type description
url string Request url
options object Optional. { headers?: HttpHeaders; observe?: any }.
Send custom headers in the request. Set observe: 'response' to get complete response. Default is observe: 'body'.

jwtAuthPost(url: string, body: any, options?: Object)
Method to send Post request with jwt token.

argument type description
url string Request url
body string Request body
options object Optional. { headers?: HttpHeaders; observe?: any }.
Send custom headers in the request. Set observe: 'response' to get complete response. Default is observe: 'body'.

jwtAuthPut(url: string, body: any, options?: Object)
Method to send Put request with jwt token.

argument type description
url string Request url
body string Request body
options object Optional. { headers?: HttpHeaders; observe?: any }.
Send custom headers in the request. Set observe: 'response' to get complete response. Default is observe: 'body'.

jwtAuthDelete(url: string, options?: Object)
Method to send Delete request with jwt token.

argument type description
url string Request url
body string Request body
options object Optional. { headers?: HttpHeaders; observe?: any }.
Send custom headers in the request. Set observe: 'response' to get complete response. Default is observe: 'body'.

jwtAuthPatch(url: string, body: any, options?: Object)
Method to send Post request with jwt token.

argument type description
url string Request url
body string Request body
options object Optional. { headers?: HttpHeaders; observe?: any }.
Send custom headers in the request. Set observe: 'response' to get complete response. Default is observe: 'body'.

How to build lib for development

To run the wrapper project:

  • clone repository
  • npm install
  • ng serve

To update library and check the changes:

  • Go to projects > angular-jwt
  • ng build angular-jwt // it will build the changes in library and serve it to the wrapper project.

Contribution

Are very welcome! And remember, contribution is not only PRs and code, but any help with docs or helping other developers to solve issues are very appreciated! Thanks in advance!

License

MIT