WSO2 API Manager客户端凭据续订令牌

时间:2015-10-28 19:42:00

标签: oauth-2.0 wso2 wso2-am

我正在尝试续订通过API Manager生成的令牌。

生成令牌的curl语句是:

curl -k -d "grant_type=client_credentials" -H "Authorization: Basic TDQ0SktDZm5DcVVDSVBjdGYwVDIyRWwwUGY4YT
o2d19NQm9xYnBFXzRLNHR0Wkc0NXhxd0NMTDRh , Content-Type: application/x-www-form-urlencoded" https://10.108.106.214:8250/token

回复是

"scope":"am_application_scope default","token_type":"bearer","expires_in":1094,"access_token":"6d1d0f8afbd147d24bcd42bbc5361a1"

根据文档,它应该生成一个未被生成的retoken。我错过了什么?

当我将grant_type作为refresh_token传递时。我收到了无效的授权错误。

curl -X POST -H "Authorization: Basic TDQ0SktDZm5DcVVDSVBjdGYwVDIyRWwwUGY4YTo2d19NQm9xYnBFXzRLNHR0Wkc0NXhxd0NMTDRh"  -H "Content-Type: application/x-www-form-urlencoded" -d 'grant_type=refresh_token&refresh_token=6d1d0f8afbd147d24bcd42bbc5361a1' 'https://10.108.106.214:8250/token'

我指的是网址中的文档 https://docs.wso2.com/display/AM191/Token+API#TokenAPI-RenewingaccesstokensRenewing

那么我错过了什么?

2 个答案:

答案 0 :(得分:3)

根据OAuth 2.0 Authorization Protocol规范,grant_type client_credentials不应发出刷新令牌。

  

4.4.3. Access Token Response

     

如果访问令牌请求有效且已获得授权,则授权   服务器发出访问令牌,如第5.1节所述。 刷新   令牌不应包括在内。

您必须使用Password Grant Type

请求:

curl -k -d "grant_type=password&username=admin&password=admin" -H "Authorization: Basic bkxidjNPTnYxQ25iTXBRY2E3V3hPajdaMUVZYTpuTUQzX0tKQkhGRmxFUUlXdllmSjdTUFlleThh, Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token

回应:

{"scope":"default","token_type":"bearer","expires_in":3247,"refresh_token":"91729a78a96b58d80d869f3ec2ce8b8","access_token":"ec54b39dd9503c9f65df84b67ea586"}

使用refresh_tokenRenewing access tokens

答案 1 :(得分:0)

如果我没记错的话,您已经收到答复。

"scope":"am_application_scope default","token_type":"bearer","expires_in":1094,"access_token":"6d1d0f8afbd147d24bcd42bbc5361a1"

这是新的访问令牌。

access_token":"6d1d0f8afbd147d24bcd42bbc5361a1"

记下当前令牌,然后再次运行curl命令。响应应该是一个不同的令牌。