From c57ddb685bfd5e474218e6576d332d164f81bf26 Mon Sep 17 00:00:00 2001 From: "Diego R. Herrera" Date: Sat, 17 Sep 2016 14:32:14 +0100 Subject: [PATCH] Store AuthData when an http error occurs --- src/angular2-token.service.ts | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/angular2-token.service.ts b/src/angular2-token.service.ts index 44c1e5a3..8213be20 100644 --- a/src/angular2-token.service.ts +++ b/src/angular2-token.service.ts @@ -300,26 +300,28 @@ export class Angular2TokenService implements CanActivate { // Check if response is complete and newer, then update storage private _handleResponse(response: Observable) { - response.subscribe(res => { - - let headers = res.headers; - - let authData: AuthData = { - accessToken: headers.get('access-token'), - client: headers.get('client'), - expiry: headers.get('expiry'), - tokenType: headers.get('token-type'), - uid: headers.get('uid') - }; - - this._setAuthData(authData); - + this._parseAuthHeadersFromResponse(res); }, error => { + this._parseAuthHeadersFromResponse(error); console.log('Session Service: Error Fetching Response'); }); } + private _parseAuthHeadersFromResponse(data: any){ + let headers = data.headers; + + let authData: AuthData = { + accessToken: headers.get('access-token'), + client: headers.get('client'), + expiry: headers.get('expiry'), + tokenType: headers.get('token-type'), + uid: headers.get('uid') + }; + + this._setAuthData(authData); + } + // Try to get auth data from storage. private _getAuthDataFromStorage() {