javascript - React,Word 加载项 - ClientAuthError:AcquireToken_In_Progress:登录调用期间出错 - 登录已在进行中
问题描述
我正在构建一个带有 react 的 word 插件,下一步是通过 MSAL 对用户进行身份验证。
我已经按照本教程进行了操作。我的相关代码看起来与该代码库相同。那是:
login.ts
login.html
office-api-helpers.ts
我的登录按钮看起来有点不同,但本质上我们都只是按下一个按钮并开始登录过程signInO365
。
如果我使用示例代码并将其与我的清单一起导入,并且我的客户端 ID 一切正常。但是当我尝试从我的代码库中执行此操作时,我最终会遇到以下错误。
ClientAuthError: AcquireToken_In_Progress: Error during login call - login is already in progress.
at ClientAuthError.AuthError [as constructor] (webpack-internal:///../node_modules/msal/lib-es6/error/AuthError.js:25:28)
at new ClientAuthError (webpack-internal:///../node_modules/msal/lib-es6/error/ClientAuthError.js:110:28)
at Function.ClientAuthError.createAcquireTokenInProgressError (webpack-internal:///../node_modules/msal/lib-es6/error/ClientAuthError.js:154:16)
at UserAgentApplication.acquireTokenInteractive (webpack-internal:///../node_modules/msal/lib-es6/UserAgentApplication.js:292:238)
at UserAgentApplication.acquireTokenRedirect (webpack-internal:///../node_modules/msal/lib-es6/UserAgentApplication.js:236:14)
at Object.Office.initialize (webpack-internal:///../login/login.ts:45:26)
at OSF_InitializationHelper$prepareRightBeforeWebExtensionInitialize [as prepareRightBeforeWebExtensionInitialize] (https://appsforoffice.microsoft.com/lib/1.1/hosted/word-web-16.00.debug.js:11326:32)
at https://appsforoffice.microsoft.com/lib/1.1/hosted/office.debug.js:1754:59
at validateFunction (https://appsforoffice.microsoft.com/lib/1.1/hosted/office.debug.js:301:21)
我一直在上下这段代码试图找出问题所在,但似乎没有任何意义。这可能是什么原因造成的?
编辑:
当用户尝试登录帐户时会发生这种情况。首先用户打开插件,然后他们会看到登录按钮。这将打开 Login.html 的对话框。然后,用户可以选择一个帐户并输入他们的凭据。在被重定向到微软之后,看起来回到我的重定向页面(同样,只是 login.html)是当上述消息出现在对话框的控制台中时。
userAgentApp.acquireTokenRedirect(request);
如果用户以前从示例应用程序或 userAgentApp.loginRedirect(request); 登录,似乎会发生这种情况。如果不。
编辑 2 - 无论问题是什么,它都在最新 (1.2.1) 版本中。我按照示例回到 1.1.3 并解决了它。希望这对其他人有帮助
解决方案
推荐阅读
- prolog - 从列表中返回前两个元素和最后两个元素
- java - RecyclerView 重新加载活动/片段重新创建的数据(旋转屏幕)
- php - Laravel 5.4 中的唯一验证无法按 where() 语句的预期工作
- python - 合同夹具不适用于 pytest
- java - 在 AWS Fargate 上找出真正的 Java 堆
- laravel - 如何在 laravel 页面加载之前使用验证码?
- javascript - 如何在 Expressjs 中处理 unhandledRejection 和 uncaughtException 以避免 ERR_HTTP_HEADERS_SENT
- android - Android,从图库中选择元素并在本地复制
- php - PHP查找和替换,没有重复的单词
- javascript - 如何在没有逗号的JavaScript中分隔句子字符串中的单词