首页 > 解决方案 > 如何在 Angular 微软登录中调用 Web API?

问题描述

我正在使用npm在 Angular microsoft login 中工作。在这里,我从服务器调用一些 webapis。在这里,我从前端实现了微软登录,所以没有发送令牌,这个 api 不起作用。那么如何调用这个api没有任何错误。

在我的应用程序中,只有在使用 microsoft 登录后一切正常,但我在登录之前有多个 api 要调用,所以如何在不登录的情况下获取它们。

这是到目前为止我尝试过的代码:

  export const protectedResourceMap:[string, string[]][]= [
    ['https://buildtodoservice.azurewebsites.net/api/todolist', [ 'api://a88bb933-319c-41b5-9f04-eff36d985612/access_as_user' ]],
    ['https://graph.microsoft.com/v1.0/me', ['user.read']]
];
 

    @NgModule({
        imports: [
            MsalModule.forRoot({
                auth: {
                    clientId: 'Your client ID',
                }
            }, {
                protectedResourceMap : protectedResourceMap
            })
        ]
    })

标签: javascriptangularazure-active-directorymicrosoft-graph-apimsal

解决方案


您收到401错误,因为您user delegated在 API 上添加了身份验证,您还必须添加Application Permissions到应用程序的服务原则,以便代表您的应用程序调用 API :

在此处输入图像描述

查看这篇文章,了解有关授予 API 权限的更多信息。


推荐阅读