How to Integrate REST API with Pearl Diver
Authorizing REST API via Pearl Diver Dashboard and API set up
Authentication
1. Authorization Request: The client application initiates the authentication process by requesting authorization from the user. This typically involves redirecting the user to the Blackpearl Group Pearl Diver authorization endpoint and specifying the desired scopes, including
openid,profile,offline_access.
Example Authorization Request (in your code, the actual URL and parameters may vary):
2. User Authentication: The user is presented with a login screen and is prompted to grant or deny access to their data. If the user grants access, they are redirected back to the client application's specified redirect URI with an authorization code.
Example Redirect URL:
- YOUR_REDIRECT_URI?code=AUTHORIZATION_CODE&state=csrf_token
3. Token Exchange: The client application exchanges the authorization code for an access token. This exchange is made directly with the Blackpearl Group Pearl Diver token endpoint.
Example Token Exchange Request:
- POST https://auth.pearldiver.io/oauth/token?audience=pearldiverapi
- Content-Type: application/x-www-form-urlencoded
- grant_type=authorization_code
- code=AUTHORIZATION_CODE
- client_id=YOUR_CLIENT_ID
- client_secret=YOUR_CLIENT_SECRET
- redirect_uri=YOUR_REDIRECT_URI
In this request, the client provides the authorization code received in step 2, along with its client ID and client secret for authentication.
4. Access API: With a valid access token, the client application can now access the Blackpearl Group Pearl Diver REST API on behalf of the user. Include the access token in the
Authorizationheader of your API requests.
Example API Request (using the access token):
- GET https://api.pearldiver.io/v1/resource Authorization: Bearer ACCESS_TOKEN
5. Refreshing the Access Token: Access tokens may expire after a certain period. To maintain ongoing access without requiring the user to reauthenticate, the client can use the refresh token to obtain a new access token. This is done by making a request to the token endpoint with the refresh token.
Example Token Refresh Request:
- POST https://auth.pearldiver.io/oauth/token?audience=pearldiverapi
- Content-Type: application/x-www-form-urlencoded
- grant_type=refresh_token
- refresh_token=REFRESH_TOKEN
- client_id=YOUR_CLIENT_ID
- client_secret=YOUR_CLIENT_SECRET
The client provides the refresh token it obtained in step 3, along with its client ID and client secret. In response, it receives a new access token and, a new refresh token.
Remember to store the new access token and, the new refresh token securely for continued API access. The use of refresh tokens allows your application to maintain access without user intervention even when access tokens expire.
Status codes
Refresh Token Rotation
Refresh Token Expiration
-
Absolute Lifetime: Set a refresh token or refresh token family lifetime after which the user must re-authenticate before being issued a new access token.
-
Inactivity Lifetime: Set the inactivity lifetime of issued refresh tokens to expire if the user is not active in your application during a specified period.