3

我正在努力Excel Web Add-In。我正在使用OfficeDev/office-js-helpers库对用户进行身份验证。以下代码工作正常。但我不知道如何获取用户的电子邮件、用户名等。

是否有任何可用的功能OfficeDev/office-js-helpers 可以让我获取用户信息?

if (OfficeHelpers.Authenticator.isAuthDialog()) {
  return;
}

var authenticator = new OfficeHelpers.Authenticator();

// register Microsoft (Azure AD 2.0 Converged auth) endpoint using
authenticator.endpoints.registerMicrosoftAuth('clientID');

// for the default Microsoft endpoint
authenticator
    .authenticate(OfficeHelpers.DefaultEndpoints.Microsoft)
    .then(function (token) { 
    /* My code after authentication and here I need user's info */ })
    .catch(OfficeHelpers.Utilities.log);

代码示例会很有帮助。

4

2 回答 2

4

此代码仅为token用户提供。为了获取有关用户的信息,您需要调用Microsoft Graph API。您可以在该站点上找到完整的文档集。

如果您只是为了获取配置文件信息而进行身份验证,我建议您查看Enable single sign-on for Office Add-ins (preview)。这是为用户获取访问令牌的更简洁的方法。它目前仍处于预览阶段,因此其可行性将取决于您计划在何处部署加载项。

于 2017-08-16T22:55:12.520 回答
2

获得 Microsoft 令牌后,您可以向https://graph.microsoft.com/v1.0/me/发送请求以获取用户信息。此请求必须有一个授权标头,其中包含您之前获得的令牌。

这是使用 axios 的示例:

const config = { 'Authorization': `Bearer ${token.access_token}` };
axios.get(`https://graph.microsoft.com/v1.0/me/`, {
    headers: config
}).then((data)=> {
    console.log(data); // data contains user information
};
于 2018-03-27T12:37:30.773 回答