Angular 4和加载会话存储应用程序初始化

时间:2017-10-26 20:43:28

标签: angular

我有一个ng4应用程序,当用户进行身份验证时,它会将其JWT令牌和身份存储在浏览器的sessionStorage对象中。

在我的身份验证模块/服务中,我在构造函数中有以下内容(事实上,身份对象已经保存到会话存储中):

    this.identity = new Identity();

    let identity = sessionStorage.getItem('myIdentity');
    if (identity != null) {
        this.setAuthenticated(identity);
    }

当我刷新浏览器时,我得到了

NodeInvocationException: sessionStorage is not defined
ReferenceError: sessionStorage is not defined

我知道为什么(例如,会话存储对象尚未被浏览器初始化)。

在应用加载时检查(和加载)sessionStorage对象的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

刷新时会丢失sessionStorage,sessionStorage会与浏览器选项卡一起生效。关闭选项卡时,会话存储数据将消失,您可以使用localStorage存储令牌