首页 > 解决方案 > 使用 PublicClientApplication、Web 或 SPA 的正确平台是什么?

问题描述

我使用的是静默流示例,一切正常。但后来我看到我创建了 2 个(Web 和 SPA)平台。所以我决定做一个清理工作。因为我以为我只是使用该Web平台,所以我只是删除了SPA. 但是后来麻烦来了,因为我现在在尝试登录时总是出错。

所以这是我只启用一个平台时的当前状态。

使用时SPA

设置 1

然后我得到

错误 1

AADSTS9002325:跨域授权代码兑换需要代码交换证明密钥。

当我使用Web

设置 2

我得到:

错误 2

"xxx:请求正文必须包含以下参数:'client_assertion' 或 'client_secret'。\r\n跟踪 ID:xxx\r\n相关 ID:xxx\r\n时间戳:2021-03-03 09:59:07Z -相关 ID:xxx - 跟踪 ID:xxx"

也许我不明白,但我只需要一个平台,对吗?

我还测试了两者都启用,但遇到了与您在上面看到的相同的问题。我的 Azure 门户可能有问题吗?因为除了删除和添加平台之外,我没有改变任何东西。

并且可以肯定设置Allow public client flows设置为Yes.

标签: node.jsazure-active-directorymsal

解决方案


对于桌面应用程序,正确的平台既不是 Web 也不是 SPA,它是**移动和桌面应用程序”。

在此处输入图像描述

对于设备代码流,您确实需要设置重定向 URI,并将Allow client flow设置为Yes


推荐阅读