angular2-auth
v0.1.7
Published
Provides an angular auth module to handle authentication based on JWT
Downloads
12
Maintainers
Readme
angular2-auth
Provides an angular2 auth module to handle authentication based on JWT
Where can I use this for?
This library is useful for automatically attaching a JSON Web Token as an Authorization header when making HTTP requests in your Angular 2 Application. It has a TokenStorage Service that will store the latest Token and the Token class will add some nice helper functions in order to decode the token and to find out when it will expire.
An important thing to note: This library does not have any opinion on how you should implement your user authentication and how you receive the JWT tokens. You are completely free to do that yourself, but in most cases you will use a normal HTTP request to authenticate your users and then save the JWT token in the TokenStorage if authentication was successful.
Instalation
npm install angular2-auth
When that is done you will have to include the AuthModule
into your root module:
import { AuthModule } from 'angular2-auth';
...
@NgModule({
imports: [
...
AuthModule.forRoot(),
...
],
...
})
export class AppModule {}
In the forRoot function you can specify a custom config, more about that in the Configuration section.
Now you are ready to implement the TokenService
into your authentication service, a little example below:
import { TokenService } from 'angular2-auth';
...
@Injectable()
export class AuthService {
constructor(private _http: Http, private _tokenService: TokenService) {}
login(email: string, password: string) {
this._http.post('/auth/login', { email: email, password: password }).subscribe(
response => {
...
this._tokenService.setToken(response.token);
...
},
error => console.error(error),
() => console.log('login#done')
);
}
logout() {
this._tokenService.removeToken();
}
loggedIn() {
let token = this._tokenService.getToken();
if(token && token.token) {
return !token.isExpired();
}
return false;
}
}
Sending Requests
If you want to send a request with the Authorization
header set with the JWT token you can use the AuthHttp
class.
import { AuthHttp } from 'angular2-auth';
...
@Component({
...
})
export class AppComponent {
constructor(private _authHttp: AuthHttp) {}
getThing() {
this._authHttp.get('/get/thing')
.subscribe(
data => this.thing = data,
error => console.error(error),
() => console.log('getThing#done')
}
}