如何解决React Msal Dose 不返回 Web API 自定义范围
我在 Azour Ad 广告中注册 2 应用程序如下:
- SPA React 应用程序。
- Web API 应用程序
我公开了 Web API 自定义范围,如下所示:
在 SPA 应用程序中,我添加如下权限:
在那之后,在 React 应用程序中,我配置了 MSAL 登录并且它工作正常,但是当我尝试获取访问令牌并指定我之前创建的 Web API 范围的范围时,我遇到了以下问题,如下代码所示:
function getAccessToken(){
console.log("get access token");
console.log("account user name " + accounts[0].username);
if (account) {
instance.acquireTokenSilent({
scopes: ['soe.all'],account: account
}).then((response) => {
if (response) {
console.log(response.accessToken);
accessToken = response.accessToken;
}
});
}
}
我已经授予管理员同意并且登录工作正常,但是当我尝试获取令牌时却失败了, 我需要访问令牌来开始调用 Web API,这将是一个 Spring Boot Rest API。
解决方法
我认为您需要完全限定范围名称,使其采用 <application-id-uri>/<scope-name>
的形式,因此对您来说应该是 https://<tenant-name>.onmicrosoft.com/soeapi/soe.all
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。