使用oAuth为Azure Active Directory中的某个Outlook日历授予权限并获取令牌

izj3ouym  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(135)

我目前正在使用oAuth通过Calendars.ReadWrite范围获取令牌,但它适用于用户拥有的所有日历。这是我的代码:

const PCA = new PublicClientApplication({
    auth: {
        clientId: "***",
        authority: "https://login.microsoftonline.com/common",
        redirectUri: "http://localhost:8080/"
    }
});

PCA.loginPopup({ scopes: ["User.Read", "Calendars.ReadWrite"] })
    .then((response) => {
        console.log(response.accessToken)
    })
    .catch(function (error) {
        console.log(error);
    });

我想知道,有没有什么方法可以根据特定的日历获得令牌?我想有一个令牌,只适用于用户选择的相同日历,不适用于用户拥有的其他日历。

2cmtqfgy

2cmtqfgy1#

不幸的是,这是不可能的。权限位于Microsoft Graph级别,仅控制对特定端点的访问。
解决方法是有一个单独的帐户,用户可以与之共享他们的日历,而您将获得该帐户的令牌。
这里是an example of how you can get access to a shared calendar

相关问题