@c8y/client
Version:
Client application programming interface to access the Cumulocity IoT-Platform REST services.
40 lines • 1.5 kB
JavaScript
import { BearerAuth } from './BearerAuth';
export class BearerAuthFromSessionStorage extends BearerAuth {
constructor(throwIfNoTokenPresent = true) {
super();
const token = this.getToken();
if (!token && throwIfNoTokenPresent) {
throw new Error('No token present in session storage');
}
}
updateCredentials({ token }) {
if (!token) {
return;
}
super.updateCredentials({ token });
return;
}
getToken() {
const token = sessionStorage.getItem(BearerAuthFromSessionStorage.sessionStorageKey);
if (token) {
const shouldKeepToken = sessionStorage.getItem(BearerAuthFromSessionStorage.sessionStorageKeyToKeepToken) ===
'true';
if (!shouldKeepToken) {
sessionStorage.removeItem(BearerAuthFromSessionStorage.sessionStorageKey);
}
this.updateCredentials({ token });
return token;
}
return super.getToken();
}
}
/**
* Key for the session storage used to retrieve the bearer token from.
*/
BearerAuthFromSessionStorage.sessionStorageKey = 'bearerAuthToken';
/**
* If the session storage key 'bearerAuthTokenKeep' is set to true, the token will be kept in session storage after it was found.
* Allows you to still refresh the page.
*/
BearerAuthFromSessionStorage.sessionStorageKeyToKeepToken = `bearerAuthTokenKeep`;
//# sourceMappingURL=BearerAuthFromSessionStorage.js.map