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

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

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

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

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

那么这是怎么回事?

最佳答案

好吧,我明白了。它必须是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上,因此它可以根据需要工作。

09-07 22:44