【问题标题】:GoDaddy redirect from office365 not returning refresh token从 office365 重定向的 GoDaddy 不返回刷新令牌
【发布时间】:2016-09-09 00:42:10
【问题描述】:

我有一个同步到 OneDrive 的应用程序。如果用户通过 GoDaddy 使用 Office365,并且我的 grant_type 为“refresh_token”,则它不会返回 refresh_token,这反过来又不会让我刷新我当前拥有的令牌。我尝试在执行 POST 请求时添加 access_type="offline"prompt="consent" 无济于事。帮忙?

这是我的代码:

credentials = OpenStruct.new
params = {
      client_id: client_credentials[:key],
      redirect_uri: redirect_url,
      client_secret: client_credentials[:secret],
      refresh_token: refresh_token,
      grant_type: 'refresh_token',
      resource: resource_id,
      access_type: 'offline',
      prompt: 'consent'
} 
RestClient.post(client.token_url, params) # doesn't return refresh_token

【问题讨论】:

标签: office365api godaddy-api


【解决方案1】:

根据请求,您似乎正在刷新令牌。基于 OAuth 2.0 代码授权流程,没有关于 access_typeprompt 的参数。支持参数可以参考下面:

这是供您参考的帖子:

POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
&grant_type=refresh_token
&resource=https%3A%2F%2Fservice.contoso.com%2F
&client_secret=JqQX2PNo9bpM0uEihUPzyrh 

【讨论】:

  • 感谢您的回复。如果没有这两个参数,它仍然没有给我一个 refresh_token。发生的情况是,如果我发布它并且它没有重定向到 godaddy,它会给我一个 refresh_token。但是当它重定向到 godaddy 时,它并没有给我 refresh_token。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2017-05-16
  • 2014-03-23
  • 1970-01-01
  • 2019-10-10
  • 2018-10-04
相关资源
最近更新 更多