Skip to main content

Password Reset Services

Password Reset services are used to reset the passwords of store staff using their email addresses registered in the system.

The Password Reset Services allows your application to facilitate the secure and straightforward process of resetting passwords for store staff. It includes two main services:

  1. Password Reset Service: Initiates the process by sending a password reset email to the user's registered email address. This email contains a link with a User ID (uid) and token for user verification.
  2. Password Reset Confirmation Service: Confirms the password reset request initiated through the email link. Users can set a new password securely using parameters obtained from the reset link.

All services related to resetting passwords are listed in this document.

POST Password Reset

This service is used to reset their password by submitting a new one using the token and user ID from the password reset link.

Path: /api/v1/auth/password-reset/

Request Body

The following request body parameters are used to send a password reset email to the user. You only need to include the email parameter to specify the user's email address. The token is not required in the request body.

ParameterData TypeInDescription
emailstringbodyThe user's email address.
{
"email": "test@akinon.com"
}

Example Request

To send a password reset email, make a POST request to the /api/v1/auth/password-reset/ endpoint.

Here's an example of how to make the request in Python:

import requests
import json
url = "https://{instore_url}/api/v1/auth/password-reset/"
payload = json.dumps({
"email": "test@akinon.com",
})
headers = {
'Content-Type': 'application/json',
'Accept-Language': 'tr-tr' # optional --default is en-us
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)

Example Response (200 OK)

In a successful response with a status code of 200 OK, the API sends a password reset email to the specified address. The response body contains a message confirming the email has been sent.

{
"detail": "Password reset e-mail has been sent."
}

The email will contain a link to reset the password, including a uid and a token to verify the user's identity.

Password Reset Link: https://{instore_url}/auth/resetPassword/<uid>/<token>

Password Reset Link Example: https://{instore_url}/auth/resetPassword/MQ/c3f5il-9988an4d89dbaf949d67e95c17ty25be5

Upon clicking the link, the user will be redirected to the password reset page.

POST Password Reset Confirmation

This service is used to confirm a password reset request. After the user clicks the link in the password reset email, they will be redirected to the password reset page, where they can enter a new password and finalize the reset process.

Path: /api/v1/auth/password-reset-confirm/

Request Body

The following request body parameters can be used to reset the user's password. There is no need to include the token parameter in the request body, as both the uid and token will be automatically retrieved from the password reset link in the email.

ParameterData TypeInDescription
new_password1stringbodyThe new password for the user
new_password2stringbodyConfirmation of the new password (must match)
uidstringbodyThe encrypted user ID
tokenstringbodyThe token valid for the specific user
{
"new_password1": "12345",
"new_password2": "12345",
"uid": "<uid>",
"token": "<token>"
}

Example Request

To reset the password of the user, a POST request should be sent to the /api/v1/auth/password-reset-confirm/ endpoint.

Here's an example of how to make the request in python:

import requests
import json
url = "https://{instore_url}/api/v1/auth/password-reset-confirm/"
payload = json.dumps({
"new_password1": "12345",
"new_password2": "12345",
"uid": "<uid>",
"token": "<token>"
})

headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)

Example Response (200 OK)

In a successful response with a status code of 200 OK, the API resets the user's password. The response body contains a message confirming the password has been successfully updated.

This example response illustrates the structure and format returned upon success:

{
"detail": "Password has been reset with the new password."
}

The user can now log in using the new password.

Example Response (400 Bad Request)

If the password does not meet validation rules, the API will return a 400 Bad Request status along with an error message indicating why the password is invalid.

There are some validation rules for the password:

  • The password should not be too short. It must contain at least 8 characters.
  • The password should not be common.
  • The password should not be entirely numeric.
  • The password should not be used before.

If any of these rules are violated, the response might look like the following examples:

{
"error": {
"non_field_errors": [
"New password cannot be the same as the old password."
]
},
"status_code": 400
}
{
"error": {
"new_password2": [
"This password is too short. It must contain at least 8 characters.",
"This password is too common.",
"This password is entirely numeric."
]
},
"status_code": 400
}