Skip to content

zurfyx/angular2-http-auth

Repository files navigation

Angular HTTP Auth

npm Version Build Status

Angular authenticated HTTP requests (no JWT required).

Inspired by angular2-jwt

Install

npm install angular2-http-auth

Usage

auth-http.module.ts

This is the configuration file. You can pass it default fixed headers as well as dynamic headers (such as the authorization token).

Make sure to import this module prior doing any authenticated HTTP call.

app.module.ts is often a good place to import it.

import { AuthHttp, AuthConfig } from 'angular2-http-auth';

export function authHttpServiceFactory(
  http: Http,
  tokenIsHereService: OptionalServiceThatProvidesTheAuthorizationToken,
) {
  return new AuthHttp(new AuthConfig({
    headers: {
      'Content-Type': 'application/json',
      Authorization: () => tokenIsHereService.authorizationKey,
    },
  }), http);
}

@NgModule({
  providers: [
    {
      provide: AuthHttp,
      useFactory: authHttpServiceFactory,
      deps: [Http, OptionalServiceThatProvidesTheAuthorizationToken]
    }
  ]
})
export class AuthHttpModule { }

It is very similar to angular2-jwt's, even though some parameters might be different.

app.module.ts

import { HttpModule } from '@angular/http';
import { AuthHttpModule } from './auth-http.module';

@NgModule({
  imports: [
    ...
    HttpModule,
    AuthHttpModule,
    ...
  ],

my-user-panel.service.ts

import { AuthHttp } from 'angular2-http-auth';
...
fetchPrivateStuff(): Observable<Response> {
  return this.authHttp.post(`https://my-site.com/privateStuff`, {});
}

TODO

  • Default headers
  • Default search params
  • Default body
  • withCredentials (cookies)

License

MIT © Gerard Rovira Sánchez