MSAL-网络请求失败.请检查网络跟踪以确定根本原因



我正在尝试使用MSAL for node.js进行OAuth 2.0身份验证,但在调用acquireTokenByAuthCode时出错。

Network request failed. Please check network trace to determine root cause. | Fetch client threw: Error: HTTP status code 400 | Attempted to reach: https://login.microsoftonline.com/{myTenantId}/oauth2/v2.0/token

客户端实例:

const msal = new ConfidentialClientApplication({
auth: {
clientId: process.env.MS_CLIENT_ID,
clientSecret: process.env.MS_SECRET,
authority: process.env.MS_AUTHORITY
}
})

登录路径:

const uri = await msal.getAuthCodeUrl({
responseMode: 'query',
redirectUri: `${process.env.APP_URI}/auth/code`,
scopes: ['user.read']
});
res.redirect(uri);

令牌路由(/auth/code(:

try {
const {
accessToken,
} = await msal.acquireTokenByCode({
scopes: ['user.read'],
code: req.query.code,
redirectUri: `${process.env.APP_URI}/auth/code`,
});
res.cookie('token', accessToken);
res.redirect('/');
}
catch(e) {
res.status(401).send(e);
}

我可以很好地检索身份验证代码,但在尝试获取最后一个片段中的令牌时出错。

确保您的clientSecret是正确的。我只是遇到了同样的问题,并意识到我使用的是秘密的ID,而不是实际的秘密本身。

我修复了它。应用程序只是缺少openid权限。

最新更新