angular2-devise-token-auth is a helper library for working with Devise Token Auth in your Angular 2 applications.
npm install angular2-devise-token-auth --save
The library comes with some helpers that are useful in your Angular 2 apps.
-
AuthHttp
- allows for individual and explicit authenticated HTTP requests -
AuthService
- provide the following features according the api:sign in
sign up
sign out
validate token
After you did the sign in
all requests will be authorized through the headers that will be sent automatically each request.
You don't need to worry about it 😎.
It's supposed that you used Angular CLI to create your app.
-
Include Auth library in the vendor files
Open
angular-cli-build.js
.Include the library in the vendorNpmFiles array:
var Angular2App = require('angular-cli/lib/broccoli/angular2-app'); module.exports = function(defaults) { return new Angular2App(defaults, { vendorNpmFiles: [ ... 'angular2-devise-token-auth/**/*.+(js|js.map)', ] }); };
-
System.js
Open
/src/system-config.ts
. Modify the file like below:/** Map relative paths to URLs. */ const map:any = { 'angular2-devise-token-auth': 'vendor/angular2-devise-token-auth/dist' }; /** User packages configuration. */ const packages: any = { 'angular2-devise-token-auth': { main: 'angular2-devise-token-auth.js' } };
-
Bootstrap: The AuthService need to know where the
auth
endpoint is. So you need to pass it as an argument. So open/src/main.ts
, inject the Auth providers, and specify your default endpoint:import {AUTH_PROVIDERS, authService} from 'angular2-devise-token-auth'; class App { constructor() {} } bootstrap(App, [ AUTH_PROVIDERS, authService('http://url-to-auth-endpoint') ])
import {AuthHttp} from 'angular2-devise-token-auth';
@Injectable()
export class SomeService {
thing: string;
constructor(private authHttp: AuthHttp) {}
getThing() {
return this.authHttp.get('http://example.com/api/thing');
}
}
import {AuthService} from 'angular2-devise-token-auth';
@Component({ ... })
export class SomeComponent {
constructor(private authService: AuthService) {
}
doIt() {
this.authService.signUp({
email: 'foo@bar.com',
password: '123456',
password_confirmation: '123456',
}).subscribe(res => console.log('LoL', res));
}
}
npm test
Follow the GitHub Flow
Pull Requests always will be welcome 🤘