You can obtain an access token by providing the resource owner's username and password as an authorization grant. It requires the base64 encoded string of the
consumer-key:consumer-secret combination. You need to meet the following prerequisites before using the Token API to generate a token.
- A valid user account in the API Store. You can self sign up if it is enabled by an admin.
- A valid consumer key and consumer secret pair. Initially, these keys must be generated through the management console by clicking the Generate link on My Subscriptions page. You can find more details in
- A running API Gateway instance (typically an API Manager instance should be running). For instructions on API Gateway, see Components.
change the port offset to avoid port conflicts. Setting the port offset causes API Manager to run on a different port from the default.If you have multiple Carbon servers (such as API Manager and WSO2 Application Server) running on the same computer, you must
- If the Key Manager is running on a different server from the API Gateway instance, change the host and port of the endpoints of the default APIs that are in
<APIM_HOME>/repository/deployment/server/synapse-configs/default/apito the correct address of the Key Manager.
Invoking the Token API to generate tokens
- Combine the consumer key and consumer secret keys in the format consumer-key:consumer-secret and encode the combined string using base64. Encoding to base64 can be done using the URL:
Here's an example consumer key and secret combination :
- Access the Token API by using a REST client such as the
- Assuming that both the client and the API Gateway are run on the same server, the token API url is https://localhost:8243/token
- payload -
"grant_type=password&username=<username>&password=<password>&scope=<scope>". Replace the
<password>values as appropriate. <scope> is optional, you can leave it off if necessary
- headers -
Authorization: Basic <base64 encoded string>, Content-Type: application/x-www-form-urlencoded. Replace the
<base64 encoded string>as appropriate.
For example, use the following cURL command to access the Token API. It generates two tokens as an access token and a refresh token. You can use the refresh token at the time a.
A note about scopes
When defining an API, the API creator is able to specify a scope for an API Resource. This is so that the API Resource can only be accessed through a token that had been issued for at least the scope belonging to the API Resource. For example if a Resource had been defined for a scope named 'update' and if the token had been issued for the scopes 'read' and 'update', the token will be allowed to access the resource. If the token had been issued for a scope named 'read', the request bearing the particular token will be blocked.
The Token API endpoint is specified in
<APIM_HOME>/repository/deployment/server/synapse-configs/default/api/_TokenAPI_.xmlfile. When running the server on a different port from the default (i.e., 9443), or if your Key Manager is running on a different machine from your API Gateway, you must update the endpoint inside the
_TokenAPI_.xmlfile as described in the prerequisites. or Curl, with the following parameters.
Instead of using the Token API, you can generate access tokens from the API Store UI. See