到期后无法刷新令牌
我可以validation并获取access_token和相应的refresh_token罚款(后续API交互也很好)。
但是,我似乎只能在access_token
实际到期之前刷新令牌(使用grant_type=refresh_token
POST
到/oauth/token
)。 到期后,相同的刷新代码(完全在文档中提供)将返回错误invalid_grant
。
我正在使用soundcloud-ruby SDK,FWIW,但我可以通过curl重现它。
顺便说一句,我发现谷歌集团的一些旧消息提到我可以请求一个非过期的令牌,但我没有在文档中的任何地方看到这一点。 这仍然是一个可行的选择吗?
那是正确的。 访问令牌过期后,无法使用刷新令牌。
通过在构造授权URL时指定scope=non-expiring
,可以请求非过期访问令牌。 要使用Ruby SDK执行此操作,只需将其他参数传递给authorize_url
方法:
require 'soundcloud' client = Soundcloud.new( :client_id => 'YOUR_CLIENT_ID', :client_secret => 'YOUR_CLIENT_SECRET', :redirect_uri => 'REDIRECT_URI' ) client.authorize_url(:scope => 'non-expiring')
流的其余部分应该完全相同(从查询字符串中获取’code’参数并向/oauth2/token
发出POST
请求)。