如何解决无法从 Microsoft oauth、msal 节点 js 库中获取刷新令牌
我正在尝试使用库 @azure/msal-node
实现与 Microsoft 的登录
我能够使用 authorization_code
流接收访问令牌和 ID 令牌,但无法获得刷新令牌。我还添加了 offline_access
范围。
我找到了一种使用 acquiretokenSilent
解决此问题的方法,但这对我来说也不起作用。
首次登录
const microsoftAuthConfig = {
auth: {
clientId: process.env.MICROSOFT_CLIENT_ID,authority: process.env.MICROSOFT_AUTHORITY,clientSecret: process.env.MICROSOFT_CLIENT_SECRET,},};
const msalClient = new msal.ConfidentialClientApplication(
microsoftAuthConfig
);
const authCodeUrlParameters = {
accesstype: 'offline',responseType: 'code',redirectUri: 'http://localhost:9000/api/auth/microsoft/redirect',state: 'sign in',scopes: [
'user.read','openid','profile','email','Calendars.ReadWrite','offline_access',],prompt: 'select_account',};
msalClient
.getAuthCodeUrl(authCodeUrlParameters)
.then((response) => {
res.status(301).redirect(response);
})
.catch((error) => console.log(JSON.stringify(error)));
if (req.query.code) {
const tokenRequest = {
code: req.query.code,accesstype: 'offline',grantType: 'authorization_code',scopes: [
'user.read',};
msalClient
.acquiretokenByCode(tokenRequest)
.then((response) => {
console.log('\nResponse: \n:',response);
res.cookie('auth-microsoft',response.idToken,{
httpOnly: true,});
return res.status(301).redirect('http://localhost:3000');
})
.catch((error) => {
console.log(error);
// res.status(500).send(error);
});
}
在此之后,我获得了访问令牌和 ID 令牌,但没有获得刷新令牌。
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。