2017-06-09 50 views
3

我允许用户使用oAuth和Microsoft Graph API授权他们的Microsoft帐户。我正在使用this omniauth strategy来方便授权。在OmniAuth策略中,它包含authorize_paramstoken_paramshttps://graph.microsoft.com”的资源。这让我验证就好了,但是当我去刷新AUTH,我得到这个错误返回:microsoft_graph oAuth刷新错误

{"error"=>"unauthorized_client", "error_description"=>"AADSTS70001: Resource 'https://graph.microsoft.com/' is not supported as resource.\r\n"} 

连同trace_id的和其他一些东西,如果需要,我会发布。

我要刷新的端点是POST https://login.microsoftonline.com/common/oauth2/v2.0/token,其中client_id,refresh_token和​​params。

刷新此oAuth令牌最近一周工作正常。微软Graph API有什么变化吗?

回答

2

你可能想看看Refreshing a Token

听起来你是部分在那里,你只是缺少一些额外的参数:

  • grant_type - 设为refresh_token
  • refresh_token - 你从供应商
  • CLIENT_ID收到的刷新令牌值 - 这是来自
  • 以上的您的应用程序ID
  • client_secret - 这是我们之前生成的密码
  • scope - 这应该匹配相同范围的设置首先请
  • REDIRECT_URI - 这是URI在你的应用程序注册定义的重定向

这些格式application/x-www-form-urlencoded在您发布到https://login.microsoftonline.com/common/oauth2/v2.0/token

POST URL: https://login.microsoftonline.com/common/oauth2/v2.0/token 
POST HEADER: Content-Type: application/x-www-form-urlencoded 
POST BODY: grant_type=refresh_token&refresh_token=[REFRESH TOKEN] 
      &client_id=[APPLICATION ID]&client_secret=[PASSWORD] 
      &scope=[SCOPE]&redirect_uri=[REDIRECT URI] 
0

原来,这很简单,因为我正在对v1.0执行操作,但试图对v2.0执行操作。不知道为什么这直到现在,但确保他们击中相同版本的API已经解决了这个问题。