我希望你能帮助我:我目前开发了一个应用程序,需要访问用户日历(outlook-calendar)来查找免费会议时段(其他用户将能够看到并选择其中一个免费时段 - 类似于calendly) 。为此,我使用msal-node
进行身份验证azureAD
。但我的用例需要“每次”——所有用户都可以访问日历。这就是为什么我想获得一个refresh_token。文档msal-node
说我应该offline_scope
在执行 OAuth 过程时提供获取刷新令牌。我的问题是我收到了 access_token 和 id_token 等,但没有刷新令牌。Azure 响应进一步显示了成功的答案,但是当我查看返回的范围时,我找不到offline_scope
.
您可以在此处查看返回的范围
我应该怎么办?
我使用 cofidentalClientApplication msal-node 实例:
const oauth2Client = MicrosoftClient.Connection
const authCodeUrlParameters = {
scopes: ["offline_access", "user.read"],
forceRefresh: true,
redirectUri: "http://localhost:3000/outlookRedirect",
}
try {
console.log("GDFHGJF")
return oauth2Client.getAuthCodeUrl(authCodeUrlParameters)
}
Run Code Online (Sandbox Code Playgroud)
从 Azure 收到代码后,我通过以下方式处理它:
const oauth2Client = MicrosoftClient.Connection
const tokenRequest = {
code: code,
scopes: ["user.read", "offline_access"],
forceRefresh: true,
redirectUri: "http://localhost:3000/outlookRedirect",
//client_secret: process.env.MICROSOFTCLIENTSECRET,
}
const testus = await oauth2Client.acquireTokenByCode(tokenRequest)
const …
Run Code Online (Sandbox Code Playgroud)