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

san*_*ooh 10 storage session-storage typescript angular

我正在使用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();
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Pan*_*ale 9

可以在会话存储中获得安全/敏感数据.

会话存储仅适用于当前表和域...

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

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


Tha*_*var 7

你可以使用sessionStorage或使用service.

你的interface:

export interface ISession {
    session:Object
}
Run Code Online (Sandbox Code Playgroud)

你的实际service课程:

    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
        }
   }
Run Code Online (Sandbox Code Playgroud)

现在您可以SessionService在其他类中注入此类constructors并使用它.