我正在尝试进行身份验证并在OneDrive中签名以获取访问令牌 .
我已在Azure Active Directory中注册了我的应用程序,并且我有client_Id和Client_Secret . 基于OneDrive API Documentation,下一步是登录以获取将用于获取访问令牌的授权代码 . 我能够成功获取代码,但下一步是使用以下参数的POST:
POST https://login.microsoftonline.com/common/oauth2/token
内容类型:application / x-www-form-urlencoded
参数:
client_id:
redirect_uri:
client_secret:
code:
resource: The resource you want to access. ????
在这一点上我将如何知道要访问的资源,不清楚为此参数发送什么值 .
我将它留空,我得到一个“Access-Control-Allow-Origin”错误:
XMLHttpRequest无法加载https://login.microsoftonline.com/common/oauth2/token . 请求的资源上没有'Access-Control-Allow-Origin'标头 . 因此不允许原点'http://localhost:23320'访问 . 响应的HTTP状态代码为400 .
这是我的代码:
var bodyInfo = {
client_id: {client_id},
redirect_uri: {redirect_uri},
client_secret: {client_secret},
code: {code},
grant_type: 'authorization_code',
resource:?????
};
$.ajax({
url: "https://login.microsoftonline.com/common/oauth2/token",
type: "POST",
data: bodyInfo,
success: function (data, textStatus, jqXHR) {
window.alert("Saved successfully!");
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
我真的很感激任何帮助 .
1 回答
要了解您需要的资源,您应该使用office的discover api(并首先对其进行身份验证):
然后你需要获取服务数据(步骤3)
访问令牌应该在步骤2的响应中 .
响应应该是这样的:
然后你应该找到serviceResourceId(在值数组的json对象内),并使用它来获取一个驱动器的正确令牌(步骤4) .