我想使用 passport-azure-ad 保护 Web API 并使用 bearerStrategy。我按照模块提供的示例并传递元数据和 clientId,我总是得到 401 未授权。这是我的 passport-azure-ad 配置{ identityMetadata: 'https://login.microsoftonline.com/<your_tenant_guid>/v2.0/.well-known/openid-configuration' // Required clientID: '<client ID>', // Required. // If you are using the common endpoint, you should either set `validateIssuer` to false, or provide a value for `issuer`. validateIssuer: false, // Required. // Set to true if you use `function(req, token, done)` as the verify callback. // Set to false if you use `function(req, token)` as the verify callback. passReqToCallback: false, // Optional. Default value is false. // Set to true if you accept access_token whose `aud` claim contains multiple values. allowMultiAudiencesInToken: false, loggingLevel:'error',};}我为授权请求标头提供了 vue-msal 生成的访问令牌。我还检查了访问令牌的签名也无效。此外,我改用了 ID 令牌,但仍然 401 未经授权。在 portal /AAD /App registration 中,我启用了隐式授权流程、accessTokenAcceptedVersion: 2、在 API 权限中为我的订阅授予管理员同意我还错过了什么?
1 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
在您的情况下,您可以按照此使用passport.authenticate
来保护资源或 API,同时确保在使用 vue-msal 获取令牌时使用正确的范围。
server.get('/api/tasks', passport.authenticate('oauth-bearer', { session: false }), listTasks);
添加回答
举报
0/150
提交
取消