Admin Token

Securing your application with OpenLoyalty starts with a robust authentication flow. OpenLoyalty leverages JSON Web Tokens (JWT) to ensure that requests to its API are authorized.

Initial Admin Login

When an admin attempts to log in for the first time:

  1. Send a POST request to the /api/admin/login_check endpoint with the admin's credentials as a JSON payload.

{
  "username": "[email protected]",
  "password": "password123"
}
  1. Upon successful authentication, OpenLoyalty will return a response containing a JWT token and a refresh token:

{
  "token": "eyJhbGciOiJSUzI1NiIsInR5cCI...",
  "refresh_token": "def50200a2e8c9a2..."
}

This JWT token is critical as it must be included in the Authorization header as a Bearer token for all subsequent requests to the API.


Maintaining Authentication State

The JWT token has a validity period of 24 hours. To continue interacting with the API beyond this period without requiring the admin to log in again, you will need to refresh the token.

  1. Send a POST request to the /api/token/refresh endpoint with the refresh token before the JWT token expires:

{
  "refresh_token": "def50200a2e8c9a2..."
}
  1. If the refresh token is valid, OpenLoyalty will issue a new JWT token along with a new refresh token.

{
  "token": "eyJhbGciOiJSUzI1NiIsInR5cCI...",
  "refresh_token": "ghi78900b3f1c9d3..."
}

Replace the old JWT token with the new one in the Authorization header for all future requests.

Sequence diagram for the authentication flow


Best Practices

  • Token Storage: Store the JWT and refresh tokens securely, and never expose them to unauthorized entities.

  • Error Handling: Implement error handling for scenarios where the token refresh fails, prompting to re-authenticate if necessary.

By following these steps and best practices, you can integrate OpenLoyalty's authentication flow into your application, ensuring secure and seamless access to its API.


Last updated

Was this helpful?