# Customer authentication

Use these operations to validate the identity of users and manage authentication credentials.

## Retrieve authentication options

 - [GET /authentication-options](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/getauthenticationoption.md): Retrieves customer authentication options.

## Change authentication options

 - [PUT /authentication-options](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/putauthenticationoption.md): Changes customer authentication options.

## Retrieve authentication tokens

 - [GET /authentication-tokens](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/getauthenticationtokencollection.md): Retrieves a list of customer authentication tokens.

## Login a customer

 - [POST /authentication-tokens](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/postauthenticationtoken.md): Logs in a customer.

## Verify an authentication token

 - [GET /authentication-tokens/{token}](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/getauthenticationtokenverification.md): Verifies a customer's authentication token.

## Logout a customer

 - [DELETE /authentication-tokens/{token}](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/deleteauthenticationtoken.md): Logs out a customer.

## Exchange an authentication token

 - [POST /authentication-tokens/{token}/exchange](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/postauthenticationtokenexchange.md): Exchanges an authentication token for a JWT.


By default, this operation invalidates the exchanged authentication token.

## Retrieve credentials

 - [GET /credentials](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/getcredentialcollection.md): Retrieves a list of authentication credentials.

## Create a credential

 - [POST /credentials](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/postcredential.md): Creates an authentication credential.

## Retrieve a credential

 - [GET /credentials/{id}](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/getcredential.md): Retrieves a credential with a specified ID.

## Upsert a credential

 - [PUT /credentials/{id}](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/putcredential.md): Creates or updates (upserts) an authentication credential with a specified ID.

## Delete a credential

 - [DELETE /credentials/{id}](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/deletecredential.md): Deletes an authentication credential with a specified ID.

## Retrieve tokens

 - [GET /password-tokens](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/getpasswordtokencollection.md): Retrieves a list of reset password tokens.

## Create a reset password token

 - [POST /password-tokens](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/postpasswordtoken.md): Creates a reset password token.

## Retrieve a reset password token

 - [GET /password-tokens/{id}](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/getpasswordtoken.md): Retrieves a reset password token with a specified ID.

## Delete a reset password token

 - [DELETE /password-tokens/{id}](https://www.rebilly.com/docs/dev-docs/api/customer-authentication/deletepasswordtoken.md): Deletes a reset password token with a specified ID.

