由于CORS,MIcrosoft Graph获取令牌请求失败

时间:2018-02-07 11:11:24

标签: oauth-2.0 ms-word microsoft-graph

我正在尝试获取访问令牌以访问word online add-in内用户的一个驱动器。我按照this link上的说明操作。

我使用以下网址从我正在开发的ms word online add-in中请求授权代码。

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http://localhost/myapp/
&response_mode=query
&scope=offline_access user.read mail.read
&state=12345

我使用以下代码生成GET请求:

function getAuthorizationCode() {
  var xhr = new XMLHttpRequest();
  xhr.open(
    "GET",
    "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?\
  client_id=6731de76-14a6-49ae-97bc-6eba6914391e\
  &response_type=code\
  &response_mode=query\
  &scope=offline_access%20user.read%20mail.read\
  &state=12345",
    true
  );

  xhr.send();
  xhr.addEventListener("readystatechange", processRequest, false);
  xhr.onreadystatechange = processRequest;

  function processRequest(e) {
    if (xhr.readyState == 4 && xhr.status == 200) {
      var response = JSON.parse(xhr.responseText);
    }
  }
}

但服务器正在抛出错误说法 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://localhost:3000' is therefore not allowed access.

如果将上述链接复制并粘贴到浏览器中,则可以正常工作。 我该怎么办?是否有其他方法可以在MS Word Online加载项中获取访问令牌。

1 个答案:

答案 0 :(得分:0)

Office Web加载项包括支持基于应用程序用户提取令牌。这提供了SSO体验,并且无需使用与已登录到应用程序的相同凭据重新进行身份验证。

您可以在Enable single sign-on for Office Add-ins了解此功能。