Important
You are browsing the documentation for version 4.1 of OroCommerce, OroCRM and OroPlatform, which is no longer maintained. Read version 5.1 (the latest LTS version) of the Oro documentation to get up-to-date information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
Password Grant Type: Generate Token¶
To configure the authentication via the password grant type and retrieve the access token:
Provide your Request URL.
The Request URL consists of your application URL and the /oauth2-token slug, e.g.,
https://yourapplication/oauth2-token
Specify the content-type in headers:
Content-Type: application/json
Send a POST request with the following body parameters to the authorization server:
grant_type with the value password
client_id with the client identifier
client_secret with the client’s secret
username with the user’s username
password with the user’s password
Receive response from the authorization server with a JSON object containing the following properties:
token_type with the value Bearer
expires_in = 3600 seconds. Once the token is generated, it is valid for an hour and can be used multiple times within this time limit to request the necessary data. Expiration time can by configured in config.yml
access_token a JSON web token signed with the authorization server’s private key
refresh_token a JSON web token used to request a new token when the access_token expires
Use the generated access token to make requests to the API.
Example
Request
1POST /oauth2-token HTTP/1.1
2Content-Type: application/json
Request Body
1{
2 "grant_type": "password",
3 "client_id": "your client identifier",
4 "client_secret": "your client secret",
5 "username": "your user username",
6 "password": "your user password"
7}
Response Body
1{
2 "token_type": "Bearer",
3 "expires_in": 3600,
4 "access_token": "your access token",
5 "refresh_token" "your refresh token"
6}
The received access token can be used multiple times until it expires.
An example of an API request:
1GET /api/users HTTP/1.1
2Accept: application/vnd.api+json
3Authorization: Bearer your access token
Note
Access tokens for back-office and storefront API are not interchangeable. If you attempt to request data for the storefront API with a token generated for the back-office application, access will be denied.
Note
For the storefront API a customer user email address should be used as username.
Note
To get the access token for a visitor for the storefront API, use guest
as username and password in the request to the authorization server. A new customer visitor is created for each created access token.