微软Live API - 访问令牌无效

10

我正在尝试实现“使用Outlook.com登录”的流程,其中涉及客户端和服务器端代码。

  1. 从客户端将用户重定向到:

https://login.live.com/oauth20_authorize.srf?client_id=<客户端ID>&response_type=code&redirect_uri=<登录HTML页面>&scope=openid+offline_access+profile+https:%2f%2foutlook.office.com%2fmail.send+https:%2f%2foutlook.office.com%2fcontacts.read+onedrive.readwrite

请注意:以上内容中的符号 { } 和英文单引号 " 仅为示例,请勿进行翻译。
2. 我将代码带回我的html页面,并将其发布到我的Java服务器上。
服务器端,我使用该代码获取访问令牌和刷新令牌,使用POST请求访问: https://login.live.com/oauth20_token.srf, 并在请求正文中传递以下参数:client_id、redirect_uri、client_secret、grant_type="authorization_code" 和 code=< 上一步的代码 >。
我收到了访问令牌和刷新令牌,它们应该有效期为1小时。
4. 在服务器上,我调用URL: https://apis.live.net/v5.0/me?access_token=< 刚刚获取的访问令牌 > ,
并收到401错误提示。
{
   "error": {
      "code": "request_token_invalid", 
      "message": "The access token isn't valid."
   }
}

这个流程可行吗?
1个回答

0

我终于成功让这个工作起来了。

首先,获取用户信息的正确端点是:
https://graph.microsoft.com/v1.0/me

其次,在第一步中,范围不应设置为openid ...,而应该是User.Read


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接