javascript - 如何在 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
})
]
})
解决方案
您收到401错误,因为您user delegated
在 API 上添加了身份验证,您还必须添加Application Permissions
到应用程序的服务原则,以便代表您的应用程序调用 API :
查看这篇文章,了解有关授予 API 权限的更多信息。
推荐阅读
- azure-cognitive-search - 微软 Azure 搜索
- python - 在 Catboost 中使用具有多类的 GPU
- konvajs - Konva - 可视化自定义命中区域
- c# - 消费者“收到”事件未触发
- node.js - 无法使用 Red Hat 软件集合中的 node.js 全局安装 @angular/cli
- java - 在 ONOS 上捕获 NETCONF 通知
- api - Guzzle Api 与 Emarsys 的连接
- scala - Play Scala - Found Future[String] 但预期的字符串错误
- python - 如何使用 Python 合并文件夹中的多个 Excel 文件及其子文件夹
- swift - 更新了重新验证用户的方法