Updated to work with Angular 12.1.0 :)
🔑 Token based authentication service for Angular with interceptor and multi-user support. Works best with the devise token auth gem for Rails.
👋 This library has been renamed to Angular-Token! Please follow the migration guide.
- 🚀 View to demo on Stackblitz
- ✨ Learn about it on the docs site
- 🔧 Support us by contributing
-
Set up a Rails with Devise Token Auth
-
Install Angular-Token via NPM with
npm install angular-token
-
Import and add
AngularTokenModule
to your main module and call the 'forRoot' function with the config. Make sure you haveHttpClientModule
imported too.import { AngularTokenModule } from 'angular-token'; @NgModule({ imports: [ ..., HttpClientModule, AngularTokenModule.forRoot({ ... }) ], declarations: [ ... ], bootstrap: [ ... ] })
-
(Maybe Optional) Fix injection context runtime error After installing this package, if you get an
Error: inject() must be called from an injection context
when running your app, add the following to your typescript path config in thetsconfig[.app].json
file:"paths": { "@angular/*": [ "./node_modules/@angular/*" ] }
-
Register your user
constructor(private tokenService: AngularTokenService) { } this.tokenService.registerAccount({ login: 'example@example.org', password: 'secretPassword', passwordConfirmation: 'secretPassword' }).subscribe( res => console.log(res), error => console.log(error) );
-
Sign in your user
constructor(private tokenService: AngularTokenService) { } this.tokenService.signIn({ login: 'example@example.org', password: 'secretPassword' }).subscribe( res => console.log(res), error => console.log(error) );
-
Now you can use HttpClient to access private resources
constructor(http: HttpClient) { } this.http.get('private_resource').subscribe( res => console.log(res), error => console.log(error) );
Jan-Philipp Riethmacher |
Arjen Brandenburgh |
---|
The MIT License (see the LICENSE file for the full text)