目前,我通过在Web视图中向以下URL发送请求,要求用户登录Microsoft Live:
https://login.live.com/oauth20_authorize.srf?client_id=[CLIENT ID]&scope=[SCOPES]&response_type=token&redirect_uri=[REDIRECT URI]&display=popup
这个很完美,我收到并保存了
access_token
和authentication_token
。请注意,即使我包括wl.offline_access
作用域,它也不会返回refresh_token
。当访问令牌过期并需要刷新时,问题就出现了。我正在尝试使用Microsoft文档中的方法来刷新令牌:
https://login.live.com/oauth20_token.srf?client_id=[CLIENT ID]&redirect_uri=[REDIRECT URI]&client_secret=[CLIENT SECRET]&refresh_token=[WHAT TO PUT HERE?]&grant_type=refresh_token
然而,在登录过程中未返回
refresh_token
,因此我不知道该传入什么。请注意,将authentication_token
(它应该用于什么?)作为refresh_token
参数发送会导致以下结果:{
"error": "invalid_grant",
"error_description": "The provided value for the input parameter 'refresh_token' is not valid."
}
有人知道如何通过Microsoft Live的REST API正确地刷新令牌吗?