Users need access tokens to invoke APIs subscribed under an application. Access tokens are passed in the HTTP header when invoking APIs. The API Cloud provides a Token API that you can use to generate and renew user and application access tokens. The response of the Token API is a JSON message. You extract the token from the JSON and pass it with an HTTP Authorization header to access the API.
The following topic explains how to generate/renew access tokens and authorize them. WSO2 API Cloud supports the four most common authorization grant types and you can also define additional types.
Also, see the following:
Renewing access tokens
After an access token is generated, sometimes you might have to refresh or renew the old token due to expiration or security concerns. This can be done by issuing a REST call to the Token API through a REST client like cURL, with the following parameters.
- The Token API URL is
https://gateway.api.cloud.wso2.com/token
. - payload -
"grant_type=refresh_token&refresh_token=<retoken>&scope=PRODUCTION"
. Replace the<retoken>
value with the refresh token that you generate through the UI. - headers -
Authorization :Basic <base64 encoded string>, Content-Type: application/x-www-form-urlencoded
. Replace<base64 encoded string>
as appropriate.
For example, the following cURL command can be used to access the Token API.
curl -k -d "grant_type=refresh_token&refresh_token=<retoken>&scope=PRODUCTION" -H "Authorization: Basic SVpzSWk2SERiQjVlOFZLZFpBblVpX2ZaM2Y4YTpHbTBiSjZvV1Y4ZkM1T1FMTGxDNmpzbEFDVzhh, Content-Type: application/x-www-form-urlencoded" https://gateway.api.cloud.wso2.com/token
The REST message will grant a renewed token.
Revoking access tokens
After issuing an access token, a user or an admin can revoke it in case of theft or a security violation. You can do this by calling the Revoke API using a REST Client. The Revoke API's endpoint URL is https://gateway.api.cloud.wso2.com/revoke
. The parameters required to invoke this API are as follows:
- The token to be revoked
- Consumer key and consumer secret key. Must be encoded using Base64 algorithm
For example, curl -k -d "token=<ACCESS_TOKEN_TO_BE_REVOKED>" -H "Authorization: Basic Base64Encoded(Consumer key:consumer secret)" https://gateway.api.cloud.wso2.com/revoke.