我正在使用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(); }); } }
当ngOnInit()时,在app.component中调用getProfile().应用程序的其他组件也需要用户对象.
可以在会话存储中获得安全/敏感数据.
会话存储仅适用于当前表和域...
如果用户在另一个窗口选项卡中检查相同的会话存储数据,那么它将不在那里....所以它的安全存储....
如果想了解更多信息,请查看sessionStorage
你可以使用sessionStorage
或使用service
.
你的interface
:
export interface ISession { session:Object }
你的实际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 } }
现在您可以SessionService
在其他类中注入此类constructors
并使用它.