【发布时间】:2016-03-14 04:34:10
【问题描述】:
我正在尝试刷新从 wso2 身份服务器获得的访问令牌(基于https://docs.wso2.com/display/IS510/Refresh+Token+Grant);服务器返回一个无效的授权类型响应
{
"error": "invalid_grant",
"error_description": "Provided Authorization Grant is invalid"
}
访问令牌是使用“授权码”授权类型和 openid 范围获得的。
我已经在服务器上开启了日志;但是,我无法确定无效授权类型响应的原因。如何让 WSO2 身份服务器使用刷新令牌刷新我的访问令牌?
来自服务器的日志:
TID:[-1234] [] [2016-03-14 09:20:11,241] 调试 {org.wso2.carbon.identity.oauth2.OAuth2Service} - 访问令牌 收到客户端 ID CHao3ZYUVY6tRX4jJ82yzh4NVpka、用户 ID 的请求 null,范围:[openid] 和授权类型:refresh_token
TID:[-1234] [] [2016-03-14 09:20:11,241] 调试 {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler} - 可以使用客户端 ID 和 Secret 进行身份验证。客户端 ID:CHao3ZYUVY6tRX4jJ82yzh4NVpka TID:[-1234] [] [2016-03-14 09:20:11,241] 调试 {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler} - 授予类型:refresh_token 严格的客户端验证设置为:null
TID:[-1234] [] [2016-03-14 09:20:11,242] 调试 {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 客户端 凭据是从数据库中获取的。 TID:[-1234] [] [2016-03-14 09:20:11,242] 调试 {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 成功 使用客户端 ID 对客户端进行身份验证:CHao3ZYUVY6tRX4jJ82yzh4NVpka
TID:[-1234] [] [2016-03-14 09:20:11,243] 调试 {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 客户端 凭据已添加到客户端 ID 的缓存中: CHao3ZYUVY6tRX4jJ82yzh4NVpka
TID:[-1234] [] [2016-03-14 09:20:11,245] 调试 {org.wso2.carbon.identity.oauth2.token.handlers.grant.RefreshGrantHandler} - 为具有客户端 ID 的客户端提供的刷新令牌无效:CHao3ZYUVY6tRX4jJ82yzh4NVpka
TID:[-1234] [] [2016-03-14 09:20:11,245] 调试 {org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer} - 无效 客户 ID 提供的赠款:CHao3ZYUVY6tRX4jJ82yzh4NVpka
TID:[-1234] [] [2016-03-14 09:20:11,246] 调试 {org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer} - OAuth-错误代码=invalid_grant 客户端 ID=CHao3ZYUVY6tRX4jJ82yzh4NVpka grant-type=refresh_token scope=openid
【问题讨论】:
-
嗨汉克。你有没有找到解决方案?
-
@JonathanWilliams 查看我对此的重新发送解决方案,看看它是否能解决您的问题。
-
乔纳森,很抱歉延迟回复。我还没有找到该设备的可行解决方案。但是,如果您有原始身份验证请求的会话 cookie(Web 应用程序),并在刷新令牌期间传递这些 cookie,那么它就可以工作。