# 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.