Step-by-Step
To demonstrate this flow, we’ll use an example built on top of Salesforce’s REST-based APIs. Our example will retrieve and output all contacts accessible to the resource owner in the Salesforce CRM system.
We’ll assume the example application is a native mobile application written by Acme Corporation and distributed to its employees through a corporate application directory. This method of distribution indicates to the employees that it is a “trusted” application and it’s OK to enter their credentials in the app.
Step 1: Ask the user for their credentials
The first step is asking the user to provide their credentials to the application. In addition to a username and password, Salesforce requires that a user enter their security token when logging into an app from an untrusted network, such as the networks used by popular mobile phone service providers. An application would typically display this as a third field for user input, in addition to the username and password.
Step 2: Exchange the credentials for an access token
The process of exchanging credentials for an access token is very
similar to exchanging an authorization code for an access token in the
Authorization Code flow. We simply need to make a HTTP POST to the authorization server,
providing the credentials and client information.
You can find the authorization server URL in the API provider’s documentation. For Salesforce, the URL is
https://login.salesforce.com/services/oauth2/token
Here are the required POST