Skip to content

Instantly share code, notes, and snippets.

@vuorinem
Created December 18, 2015 12:15
Show Gist options
  • Save vuorinem/6b57225915e00920e3b1 to your computer and use it in GitHub Desktop.
Save vuorinem/6b57225915e00920e3b1 to your computer and use it in GitHub Desktop.
private getToken(): Promise<string> {
var token = localStorage.getItem(AUTHTOKEN_KEY);
if (this.isExpired(token)) {
// Token is expired, try to get new token if refresh_token is available
var refreshToken = localStorage.getItem(REFRESHTOKEN_KEY);
if (refreshToken) {
return this.http.post(authConfig.loginUrl, $.param({
'grant_type': 'refresh_token',
'refresh_token': refreshToken,
})).then(response => {
localStorage.setItem(AUTHTOKEN_KEY, response.content[authConfig.tokenName]);
localStorage.setItem(REFRESHTOKEN_KEY, response.content['refresh_token']);
return response.content[authConfig.tokenName];
}).catch(() => {
// Error trying to refresh authentication token, log out user
localStorage.removeItem(AUTHTOKEN_KEY);
localStorage.removeItem(REFRESHTOKEN_KEY);
this.userService.clear();
return null;
});
}
// No refresh token available, log out user
localStorage.removeItem(AUTHTOKEN_KEY);
this.userService.clear();
return Promise.resolve(null);
}
return Promise.resolve(token);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment