刷新令牌返回无效的授权类型

Han*_*ank 5 wso2 wso2is

我正在尝试刷新从wso2身份服务器获取的访问令牌(基于https://docs.wso2.com/display/IS510/Refresh+Token+Grant); 服务器返回无效的授权类型响应

{
  "error": "invalid_grant",
  "error_description": "Provided Authorization Grant is invalid"
}
Run Code Online (Sandbox Code Playgroud)

使用具有openid范围的"授权代码"授权类型获取访问令牌.

我打开了服务器上的日志记录; 但是,我无法确定无效授权类型响应的原因.如何使用刷新令牌让WSO2 Identity Server刷新我的访问令牌?

来自服务器的日志:

TID:[ - 1234] [] [2016-03-14 09:20:11,241] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 收到客户ID为CHao3ZYUVY6tRX4jJ82yzh4NVpka的访问令牌请求,用户ID为null,范围: [openid]和Grant Type:refresh_token

TID:[ - 1234] [] [2016-03-14 09:20:11,241] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.Abs​​tractClientAuthHandler} - 可以使用客户端ID和密码进行身份验证.客户ID:CHao3ZYUVY6tRX4jJ82yzh4NVpka TID:[ - 1234] [] [2016-03-14 09:20:11,241] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.Abs​​tractClientAuthHandler} - 授权类型:refresh_token Strict客户端验证设置为:null

TID:[ - 1234] [] [2016-03-14 09:20:11,242] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 从数据库中提取客户端凭据.TID:[ - 1234] [] [2016-03-14 09:20:11,242] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 使用客户端ID成功验证客户端:CHao3ZYUVY6tRX4jJ82yzh4NVpka

TID:[ - 1234] [] [2016-03-14 09:20:11,243] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 将客户端凭据添加到客户端ID的缓存中:CHao3ZYUVY6tRX4jJ82yzh4NVpka

TID:[ - 1234] [] [2016-03-14 09:20:11,245] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.grant.RefreshGrantHandler} - 为客户端ID提供的无效刷新令牌:CHao3ZYUVY6tRX4jJ82yzh4NVpka

TID:[ - 1234] [] [2016-03-14 09:20:11,245] DEBUG {org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer} - 客户提供的无效资助ID:CHao3ZYUVY6tRX4jJ82yzh4NVpka

TID:[ - 1234] [] [2016-03-14 09:20:11,246] DEBUG {org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer} - OAuth-Error-Code = invalid_grant client-id = CHao3ZYUVY6tRX4jJ82yzh4NVpka grant -type = refresh_token scope = openid

Liv*_*ndz 2

问题很老了......希望它能在这么长时间后对其他人有所帮助;)。我遇到过同样的问题。但是,我通过指定确切的refresh token. 值得注意的是,它refresh_tokenaccess token. 如果您没有/不知道您的refresh_token,请使用此curl命令来获取它。

curl -k -d "grant_type=password&username=<username>&password=<password>" -H "Authorization: Basic SVpzSWk2SERiQjVlOFZLZFpBblVpX2ZaM2Y4YTpHbTBiSjZvV1Y4ZkM1T1FMTGxDNmpzbEFDVzhh" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token
Run Code Online (Sandbox Code Playgroud)

响应将是这样的: { "scope": "default", "token_type": "Bearer", "expires_in": 2604, "refresh_token": "7d6e9047d44a84e6bae7e80e3996182d", "access_token": "4255a34923eb464b6dc2983acffef4d8" }

refresh_token然后在您的renew令牌curl 调用中使用它。有关第 1 次卷曲请求的更多详细信息,请点击此处 和平退出 .V。