在 msal loginRedirect 方法期间获取 "state not found"

Getting "state not found" during msal loginRedirect method

我正在尝试在我的 React 应用程序中实施 msal 2。我使用 msal-react-samples/default 作为我工作的模板。我能够看到我的登录页面并使用 loginRedirect 方法登录。但是返回到我的应用程序后,我收到以下错误。我看到有人问了一个非常相似的问题(65375241)。但看起来用户放弃了它。我在下面包含了更多信息。

错误代码:“state_not_found” 错误消息:“未找到状态:缓存状态”

附加信息

我能够通过查看 MSAL git 回购问题找出我自己的错误 @azure/msal-browser redirect not working correctly

我将在这里描述我的问题,以帮助遇到同样错误的其他人。

是我的addEventCallback方法使用不当造成的

我在我的代码中将其实现为一个简单的函数调用。但是需要放到useEffect里面,消费之后还要发出removeEventCallback方法

我有

instance.addEventCallback((message) => {
    console.log(message)
 })

而不是

useEffect(() => {
        const callbackId = instance.addEventCallback((message) => {
            console.log(message)
        })
        return () => {
            if (callbackId) {
                instance.removeEventCallback(callbackId);
            }
        }
    }, [instance])