我正在尝试刷新从wso2 identity server获得的访问令牌(基于https://docs.wso2.com/display/IS510/Refresh令牌授权);服务器返回无效的授权类型响应
{
"error": "invalid_grant",
"error_description": "Provided Authorization Grant is invalid"
}
访问令牌是使用openid范围的“授权代码”授权类型获得的。
我已经打开了服务器上的日志记录;然而,我无法确定无效授权类型响应的原因。如何让WSO2 Identity Server使用刷新令牌刷新我的访问令牌?
来自服务器的日志:
TID:[-1234][][2016-03-14 09:20:11,241]DEBUG{org.wso2.carbon.identity.oauth2.OAuth2Service}-接收到客户端ID CHao 3ZYUVY6tRX4jJ82yzh4NVpka的访问令牌html" target="_blank">请求,用户ID为空,范围:[openid]和授予类型:refresh_token
TID:[-1234][][2016-03-14 09:20:11241]DEBUG{org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler}-可以使用客户端ID和Secret进行身份验证。客户端ID:CHao3ZYUVY6tRX4jJ82yzh4NVpka TID:[-1234][][2016-03-14 09:20:11241]DEBUG{org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler}-授权类型:refresh_token严格的客户端验证设置为:null
TID:[-1234][][2016-03-14 09:20:11,242]DEBUG { org . WSO 2 . carbon . identity . oauth 2 . util . oauth 2 util }-从数据库中提取客户端凭据。TID:[-1234][][2016-03-14 09:20:11,242]DEBUG { org . WSO 2 . carbon . IDentity . oauth 2 . util . oauth 2 util }-成功认证客户端id为:CHao3ZYUVY6tRX4jJ82yzh4NVpka的客户端
TID:[-1234][][2016-03-14 09:20:11,243]DEBUG{org.wso2.carbon.identity.oauth2.util.OAuth2Util}-客户端凭据已添加到客户端ID的缓存中:CHao 3ZYUVY6tRX4jJ82yzh4NVpka
TID:[-1234][][2016-03-14 09:20:11,245]DEBUG{org.wso2.carbon.identity.oauth2.token.handlers.grant.为客户端提供的刷新令牌无效,客户端ID为:CHao 3ZYUVY6tRX4jJ82yzh4NVpka
TID:[-1234][][2016-03-14 09:20:11,245]DEBUG { org . WSO 2 . carbon . identity . oauth 2 . token . accesstokenissuer }-客户端Id:Chao 3 zyu vy 6 Trx 4 jj 82 yzh 4 nvpka提供的授权无效
TID: [-1234] [] [2016-03-14 09:20:11,246] 调试 {org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer} - OAuth-Error-Code=invalid_grant client-id=CHao3ZYUVY6tRX4jJ82yzh4NVpka grant-type=refresh_token scope=openid
这个问题很古老……希望它能在这么长时间后帮助到其他人;)。我也有同样的问题。然而,我通过指定确切的刷新标记
来解决这个问题。值得注意的是,refresh_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
响应会是这样的:< code>{ "scope": "default "," token_type": "Bearer "," expires_in": 2604," refresh _ token ":" 7d6e 9047d 44 a 84 E6 BAE 7e 80 e 3996182d "," access _ token ":" 4255 a 34923 EB 464 b 6 DC 2983 ACF eff 4d 8 " }
然后使用refresh_token
在您的更新
令牌curl调用。关于第一个curl请求的更多详细信息在这里和平出来。V.
我已经在stackoverflow中阅读了一些关于这个主题的其他帖子,但我仍然没有找到解决方案...:\ 非常感谢您的支持!
我能够获得此访问令牌,但是,当我试图获得刷新令牌时,我得到一个错误。 在这一刻,我正在测试这个使用邮递员。 我正在做以下工作: null null null null null
我执行本问题中描述的步骤: Laravel的5.3护照和api路由 从api的路径来看,一切都很好,我可以注册新用户,读取他们的数据等等。 然后在AuthServiceProvider上添加此命令 护照::代币ExpireIn(碳::现在()- 我以url{{url}}/oauth/token登录邮递员 正文:application/x-www-form-urlencoded { 授权类型:{pa
我在自己的Web API上使用Oauth2,在Web应用程序上使用ASP.NET C#来使用该API。在我的web应用程序上,我正在进行HttpWebRequests。当我的访问令牌过期时,我调用一个方法“refreshToken”,该方法发出请求以获取新的访问令牌。这工作很好,没有问题...除了我得到的响应包含一个新的刷新令牌???我在等新的访问令牌。我甚至认为在没有再次传递凭据的情况下这是不可
下面是我使用的命令。 在融合表中上传数据 curl-s-s--data-binary“input_csv_file”-h“授权:承载ACCESS_TOKEN_FROM_PLAYGROUNDLINK”-h“内容-类型:application/octet-stream”https://www.googleapis.com/upload/fusiontables/v1/tables/fusion_tab
定义的新集成密钥9xxx7e null 但仍然得到401的回应内容: