react-aad-msal清除本地存储。通过状态

问题描述 投票:1回答:1

所以过去两天我一直在碰壁。我将近两年没有从事ract /前端工作,所以请多多包涵。

场景:-加载页面-将内容放入localstorage(查询字符串参数)-导航至登录授权页面(为此使用react-aad-msal)-返回首页-尝试从localstorage检索数据,而我添加的键丢失。存在msal令牌等。

环境:-镀铬-用于调试的React插件

[意外的扭曲:这是随机发生的。昨天大部分时间它都在工作。然后我添加的键开始消失了。今天早上也是一样。

据我所知-如果我将某些内容放入本地存储,除非请求以编程方式或其他方式将其删除,否则它将保留在那里。

那么这是怎么回事?

javascript reactjs local-storage frontend react-aad-msal
1个回答
0
投票

确定我明白了。它必须是msal的行为-无论是react-aad-msal还是环绕的实际msal.js。无论如何,事实证明,解决方案是在创建提供程序时完全忽略本地存储问题,然后在AuthenticationParameters的状态参数中传递查询字符串。

我只是通过组件传递查询字符串:

<AzureAD
 provider={authProviderWithState(this.props.queryString)}
 reduxStore={this.props.reduxStore}
 forceLogin={false}>

然后将其粘贴在默认值的顶部

export const authProviderWithState = (state) => {
    whichAuthParams.state = state;
    return new MsalAuthProvider(whichConfig, whichAuthParams, LoginType.Redirect);
};

状态只是附加到授权端点使用的回调URL上,因此它可以根据需要工作。

© www.soinside.com 2019 - 2024. All rights reserved.