4

我有 2 个站点,一个 Angular 应用程序和一个 WebAPI。

当我从前端使用 MSAL.js 调用 WebAPI 时,没有附加任何令牌(因为 CORS)。

我知道我需要设置 protectedResourceMap 但我找不到如何设置它的明确解释。

我可以找到很多例子,但没有一个给出有意义的解释(对我来说)。

任何人都可以提供任何意见吗?

4

1 回答 1

3

我只是在学习这一点,但在 doco 中找到了这些信息:

MSAL.js Angular 自述文件:

protectedResourceMap:将资源映射到范围 {" https://graph.microsoft.com/v1.0/me ", ["user.read", "mail.send"]}。由 MSAL 在内部用于在 webApi 调用中自动附加令牌。这仅对 CORS 调用是必需的。

我对给定示例的理解是:

export const protectedResourceMap:[string, string[]][]=[
    ['your api endpoint',['scope 1', 'scope 2', 'scope n']] // example
    ['https://buildtodoservice.azurewebsites.net/api/todolist',['api://a88bb933-319c-41b5-9f04-eff36d985612/access_as_user']], // api you host
    ['https://graph.microsoft.com/v1.0/me', ['user.read']] // ms graph api - uses short scope names with no uri prefix
];

因此,当调用路径“您的 api 端点”时,包括与范围“范围 1”、“范围 2”、“范围 n”相关联的令牌。

于 2019-11-15T04:37:23.967 回答