Microsoft Oauth2(令牌端点) - 无效的客户端错误

时间:2017-06-23 11:48:15

标签: javascript web oauth outlook microsoft-graph

我正在尝试从网页浏览中脱机访问Outlook日历。 (使用authorization_code oauth流程) 目前我正在做以下

javascript网站称之为     https://login.microsoftonline.com/common/oauth2/v2.0/authorize 端点。然后我将重定向URI设置为我的spring端点。

spring服务正在获得一个有效的代码/状态,所以我认为到目前为止我做的一切都是正确的。

然后我用以下参数调用/ token端点

{
    grant_type: authorization_code,
    client_id: <client_id>,
    client_secret: client_secret,
    redirect_uri: <THE SAME AS USED BY AUTHENTICATE>,
    scope: https://graph.microsoft.com/mail.read
}

我收到以下错误:

{
    "error" : "invalid_client",
    "error_description" : "The OAuth client was not found."
}

我确保两次客户端密码/ ID设置正确。我使用微软注册门户创建我的应用程序,并使用Web作为平台。还启用了Live SDK支持。

https://apps.dev.microsoft.com

有没有人建议为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

您需要将第二次通话中第一次通话时收到的授权码传回。以下是您需要传回的参数:

  • grant_type - 应为authorization_code
  • 代码 - 您收到的身份验证码
  • client_id - 这是您的应用程序/客户端ID
  • client_secret - 这是密码/客户端密钥
  • 范围 - 这应与您最初请求的同一组范围匹配
  • redirect_uri - 这是您的应用程序注册中定义的重定向URI

另请注意,POST应编码为application/x-www-form-urlencoded而不是application/json

我写了一篇你可能会觉得有用的primer on the v2 Endpoint