diff --git a/docs/service-methods.md b/docs/service-methods.md index 55dc1fa3..5fa01b16 100644 --- a/docs/service-methods.md +++ b/docs/service-methods.md @@ -23,10 +23,12 @@ get currentUserData(): UserData ``` ## .currentAuthData -Returns current authentication data which are used to set auth headers. +Sets or returns current authentication data which are used to set auth headers. ```js get currentAuthData(): AuthData + +set currentAuthData(authData: AuthData) ``` ## .tokenOptions diff --git a/projects/angular-token/package.json b/projects/angular-token/package.json index f1b18084..72865cc8 100644 --- a/projects/angular-token/package.json +++ b/projects/angular-token/package.json @@ -1,6 +1,6 @@ { "name": "angular-token", - "version": "7.1.0-rc.0", + "version": "7.1.0-rc.5", "repository": "https://github.com/neroniaky/angular-token.git", "author": { "name": "Jan-Philipp Riethmacher", diff --git a/projects/angular-token/src/lib/angular-token.interceptor.ts b/projects/angular-token/src/lib/angular-token.interceptor.ts index 9872ebcf..94e3688a 100755 --- a/projects/angular-token/src/lib/angular-token.interceptor.ts +++ b/projects/angular-token/src/lib/angular-token.interceptor.ts @@ -18,9 +18,9 @@ export class AngularTokenInterceptor implements HttpInterceptor { // Add the headers if the request is going to the configured server const authData = this.tokenService.authData.value; - if (authData && - (this.tokenService.tokenOptions.apiBase === null || req.url.match(this.tokenService.tokenOptions.apiBase))) { + (this.tokenService.tokenOptions.apiBase === null || req.url.match(this.tokenService.tokenOptions.apiBase) + || req.url.match(this.tokenService.tokenOptions.secondaryApiBase))) { const headers = { 'access-token': authData.accessToken, diff --git a/projects/angular-token/src/lib/angular-token.model.ts b/projects/angular-token/src/lib/angular-token.model.ts index d702c8fa..f2305ea5 100755 --- a/projects/angular-token/src/lib/angular-token.model.ts +++ b/projects/angular-token/src/lib/angular-token.model.ts @@ -82,6 +82,7 @@ export interface AngularTokenOptions { apiBase?: string; apiPath?: string; + secondaryApiBase?: string; signInPath?: string; signInRedirect?: string; diff --git a/projects/angular-token/src/lib/angular-token.service.spec.ts b/projects/angular-token/src/lib/angular-token.service.spec.ts index 0ebf372f..ea965c51 100644 --- a/projects/angular-token/src/lib/angular-token.service.spec.ts +++ b/projects/angular-token/src/lib/angular-token.service.spec.ts @@ -481,6 +481,11 @@ describe('AngularTokenService', () => { it('userSignedIn should return false', () => { expect(service.userSignedIn()).toEqual(false); }); + + it('currentUserdata should return auth data after setting them', () => { + service.currentAuthData = authData; + expect(service.currentAuthData).toEqual(authData); + }); }); describe('user signed in', () => { diff --git a/projects/angular-token/src/lib/angular-token.service.ts b/projects/angular-token/src/lib/angular-token.service.ts index e068a920..c4d27ab6 100755 --- a/projects/angular-token/src/lib/angular-token.service.ts +++ b/projects/angular-token/src/lib/angular-token.service.ts @@ -46,6 +46,12 @@ export class AngularTokenService implements CanActivate { return this.authData.value; } + set currentAuthData(authData: AuthData) { + if (this.checkAuthData(authData)) { + this.authData.next(authData); + } + } + get apiBase(): string { console.warn('[angular-token] The attribute .apiBase will be removed in the next major release, please use' + '.tokenOptions.apiBase instead'); @@ -144,6 +150,12 @@ export class AngularTokenService implements CanActivate { this.tryLoadAuthData(); } + updateCurrentAuthData(authData: AuthData) { + if (this.checkAuthData(authData)) { + this.authData.next(authData); + } + } + userSignedIn(): boolean { if (this.authData.value == null) { return false; diff --git a/projects/angular-token/src/public_api.ts b/projects/angular-token/src/public_api.ts index a60d20d2..e401e2bd 100644 --- a/projects/angular-token/src/public_api.ts +++ b/projects/angular-token/src/public_api.ts @@ -17,3 +17,5 @@ export { ANGULAR_TOKEN_OPTIONS } from './lib/angular-token.token'; export { AngularTokenService } from './lib/angular-token.service'; export { AngularTokenModule } from './lib/angular-token.module'; + +export { AngularTokenInterceptor } from './lib/angular-token.interceptor';