Skip to main content

Login and Registration

This guide explains how to implement user login and registration in the Sumaya369 web application.

User Registration

Endpoint

  • Method: POST
  • URL: /v1/customer/register

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
full_namestringUser's full nameYes
emailstringUser's email addressYes
passwordstringUser's password (min 6 characters)Yes
country_idstringUUID of user's countryYes
phonestringUser's phone numberYes
has_read_policybooleanAcceptance of termsYes
avatarfileOptional profile pictureNo

Success Response

{
"success": true,
"message": "تم التسجيل بنجاح.",
"data": {
"id": "0a79add0-f3ae-11ef-bee7-8bfdde00797d",
"username": "testing_1",
"first_name": null,
"last_name": null,
"full_name": "Ahmed Mohammad",
"country_name": "السعودية",
"email": "testing@gmail.com",
"birth": null,
"phone": "966555545539",
"gender": null,
"avatar": "https://i.ibb.co/YhTw0wR/7-512.png",
"token": "token_here",
"token_type": "Bearer"
},
"status_code": 200
}

Error Responses

Validation Error (422)

{
"success": false,
"message": "قيمة البريد الإلكتروني مُستخدمة من قبل.",
"errors": null,
"data": null,
"status_code": 422
}

Resend Activation Email

Endpoint

  • Method: POST
  • URL: /v1/customer/resend-activation-email

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
emailstringRegistered email addressYes

Success Response

{
"success": true,
"message": "تم إرسال رسالة التفعيل إلى بريدك الإلكتروني",
"data": null,
"status_code": 200
}

Error Responses

Already Activated (200)

{
"success": true,
"message": "بريدك الإلكتروني مفعل مسبقاً",
"data": null,
"status_code": 200
}

Too Many Requests (310)

{
"success": false,
"message": "لقد تم إرسال رابط التفعيل إلى بريدك الإلكتروني يمكنك إرسال رسالة أخرى بعد ثلاثة دقائق",
"errors": "لقد تم إرسال رابط التفعيل إلى بريدك الإلكتروني يمكنك إرسال رسالة أخرى بعد ثلاثة دقائق",
"data": null,
"status_code": 310
}

Account Activation

Endpoint

  • Method: POST
  • URL: /v1/customer/activate-account

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
emailstringRegistered email addressYes
tokenstring60-character activation tokenYes

Success Response

{
"success": true,
"message": "تم تفعيل بريدك الإلكتروني بنجاح.",
"data": {
"email": "testing@gmail.com"
},
"status_code": 200
}

Error Responses

Invalid Token (422)

{
"success": false,
"message": "رمز التحقق هذا غير صحيح.",
"errors": "رمز التحقق هذا غير صحيح.",
"data": null,
"status_code": 404
}

User Login

Endpoint

  • Method: POST
  • URL: /v1/customer/login

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
emailstringUser's email or usernameYes
passwordstringUser's passwordYes
fcm_tokenstringFirebase Cloud Messaging tokenNo
device_idstringUnique device identifierRequired with fcm_token
productsarrayCart items to synchronizeNo

Success Response

{
"success": true,
"message": "تم تسجيل الدخول بنجاح.",
"data": {
"id": "0a79add0-f3ae-11ef-bee7-8bfdde00797d",
"first_name": null,
"last_name": null,
"full_name": "Ahmed Mohammad",
"country_name": "السعودية",
"email": "testing@gmail.com",
"birth": null,
"phone": "966555545539",
"gender": null,
"has_completed_profile": true,
"token": "token_here",
"token_type": "Bearer"
},
"status_code": 200
}

Error Responses

Invalid Credentials (401)

{
"status": false,
"message": "بيانات الاعتماد غير صحيحة",
"data": null
}

Logout

Endpoint

  • Method: POST
  • URL: /v1/customer/logout

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes
AuthorizationBearer tokenYes

Request Body

ParameterTypeDescriptionRequired
device_idstringDevice identifier to remove from registered devicesNo

Success Response

{
"success": true,
"message": "تم تسجيل الخروج بنجاح.",
"data": null,
"status_code": 200
}

Example Implementation Flow

  1. User Registration Process

    • User fills out registration form
    • Application sends registration request to /v1/customer/register
    • User receives activation email
    • User activates account via /v1/customer/activate-account
    • If activation email is not received, user can request a new one via /v1/customer/resend-activation-email
  2. Login Process

    • User enters email and password
    • Application sends login request to /v1/customer/login
    • Upon successful authentication:
      • Receive access token
      • Store user information
      • Synchronize cart items (if applicable)
    • Navigate to main application screen

Key Considerations

  • Always use HTTPS for all authentication requests
  • Securely store tokens and user information
  • Handle authentication errors gracefully
  • User isn't required to activate email to have full access to the application