我有 2 个站点,一个 Angular 应用程序和一个 WebAPI。
当我从前端使用 MSAL.js 调用 WebAPI 时,没有附加任何令牌(因为 CORS)。
我知道我需要设置 protectedResourceMap 但我找不到如何设置它的明确解释。
我可以找到很多例子,但没有一个给出有意义的解释(对我来说)。
任何人都可以提供任何意见吗?
我只是在学习这一点,但在 doco 中找到了这些信息:
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”相关联的令牌。