React Msal Dose 不是 return Web API 自定义范围
React Msal Dose not return the Web API custom scope
我在以下 Azour Ad 广告中注册了 2 个应用程序:
- SPA 反应应用程序。
- 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
.
我在以下 Azour Ad 广告中注册了 2 个应用程序:
- SPA 反应应用程序。
- 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
.