UNPKG

@c8y/client

Version:

Client application programming interface to access the Cumulocity IoT-Platform REST services.

49 lines 1.89 kB
import { BearerAuth } from './BearerAuth.js'; export class BearerAuthFromSessionStorage extends BearerAuth { static removeEntriesFromSessionStorage() { sessionStorage.removeItem(BearerAuthFromSessionStorage.sessionStorageKey); sessionStorage.removeItem(BearerAuthFromSessionStorage.sessionStorageKeyToKeepToken); } 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; } logout() { return super.logout().finally(() => { BearerAuthFromSessionStorage.removeEntriesFromSessionStorage(); }); } 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