在会话存储中保存用户对象

Save user object in Session Storage

我正在使用 Angular 2 和 Typescript,并希望将用户对象保存为全局变量,这样它就不会被多次检索。我找到了会话存储,现在将用户对象保存在那里。

您认为将其存储在那里是好的做法还是数据过于敏感?如果可以,我还可以使用什么其他类型的缓存?

这是我现在使用的代码:

user.service.ts:

getProfile() {
    let cached: any;
    if (cached = sessionStorage.getItem(this._baseUrl)) {
        return Observable.of(JSON.parse(cached));
    } else {
        return this.http.get(this._baseUrl).map((response: Response) => {
            sessionStorage.setItem(this._baseUrl, response.text());
            return response.json();
        });
    }
}

getProfile() 在 app.component 时调用 ngOnInit()。应用程序的其他组件也需要用户对象。

会话存储中有 secure/sensitive 数据是可以的。

因为会话存储仅适用于当前 table 和域...

如果用户在另一个 window 选项卡中检查相同的会话存储数据,那么它不会在那里....所以它的安全存储....

如果想了解更多,请查看sessionStorage

您可以使用 sessionStorage 或使用 service

你的interface

export interface ISession {
    session:Object
}

你的实际 service class:

    import {Injectable} from '@angular/core';

    @Injectable()
    export class SessionService implements ISession {    
        private _session: session

        constructor(){

        }

        set session(value){
            this._session = value;
        }

        get session(){
            return this._session
        }
   }

现在您可以将此 SessionService class 注入其他 class constructors 并使用它。