UNPKG

1.5 kBJavaScriptView Raw
1import { Injectable } from '@angular/core';
2import { NbAuthTokenParceler } from './token-parceler';
3export class NbTokenStorage {
4}
5/**
6 * Service that uses browser localStorage as a storage.
7 *
8 * The token storage is provided into auth module the following way:
9 * ```ts
10 * { provide: NbTokenStorage, useClass: NbTokenLocalStorage },
11 * ```
12 *
13 * If you need to change the storage behaviour or provide your own - just extend your class from basic `NbTokenStorage`
14 * or `NbTokenLocalStorage` and provide in your `app.module`:
15 * ```ts
16 * { provide: NbTokenStorage, useClass: NbTokenCustomStorage },
17 * ```
18 *
19 */
20export class NbTokenLocalStorage extends NbTokenStorage {
21 constructor(parceler) {
22 super();
23 this.parceler = parceler;
24 this.key = 'auth_app_token';
25 }
26 /**
27 * Returns token from localStorage
28 * @returns {NbAuthToken}
29 */
30 get() {
31 const raw = localStorage.getItem(this.key);
32 return this.parceler.unwrap(raw);
33 }
34 /**
35 * Sets token to localStorage
36 * @param {NbAuthToken} token
37 */
38 set(token) {
39 const raw = this.parceler.wrap(token);
40 localStorage.setItem(this.key, raw);
41 }
42 /**
43 * Clears token from localStorage
44 */
45 clear() {
46 localStorage.removeItem(this.key);
47 }
48}
49NbTokenLocalStorage.decorators = [
50 { type: Injectable }
51];
52NbTokenLocalStorage.ctorParameters = () => [
53 { type: NbAuthTokenParceler }
54];
55//# sourceMappingURL=token-storage.js.map
\No newline at end of file