Helper library for working with Devise Token Auth in your Angular 2 applications
npm install angular2-devise-token-authangular2-devise-token-auth is a helper library for working with Devise Token Auth in your Angular 2 applications.
``bash`
npm install angular2-devise-token-auth --save
The library comes with some helpers that are useful in your Angular 2 apps.
1. AuthHttp - allows for individual and explicit authenticated HTTP requestsAuthService
2. - provide the following features according the api:sign in
* sign up
* sign out
* validate token
*
How it works
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 :sunglasses:.
It's supposed that you used Angular CLI to create your app.
1. Include Auth library in the vendor files
Open angular-cli-build.js.`
Include the library in the vendorNpmFiles array:
js`
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)',
]
});
};
2. System.js
Open /src/system-config.ts. Modify the file like below:
`ts`
/* 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'
}
};
3. Bootstrap:
The AuthService need to know where the auth endpoint is. So you need to pass it as an argument./src/main.ts
So open , inject the Auth providers, and specify your default endpoint:
`ts`
import {AUTH_PROVIDERS, authService} from 'angular2-devise-token-auth';
class App {
constructor() {}
}
bootstrap(App, [
AUTH_PROVIDERS,
authService('http://url-to-auth-endpoint')
])
`ts
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');
}
}
`
`ts
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));
}
}
`
`bash``
npm test
Follow the GitHub Flow
Pull Requests always will be welcome :metal: