Skip to main content
#P1780

POST /b2c/v1/auth/basic


B2C Colleague Authentication (Basic)

این اندپوینت جهت ورود همکاران و آژانس‌های طرف قرارداد (Colleagues) طراحی شده است.
سیستم با دریافت نام کاربری و رمز عبور، اعتبار حساب را در جدول colleague_auth بررسی کرده و در صورت فعال بودن حساب و عدم انقضای قرارداد، یک توکن JWT صادر می‌کند. همچنین جزئیات سقف اعتبار و اطلاعات تماس همکار نیز بازگردانده می‌شود.




Colleague Login

URL: /b2c/v1/auth/basic
Method: POST
Controller: V1UserController@authBasic
Auth: Public (Guest Access)

Headers (الزامی)

Header Name Description
Domain دامنه سایت جهت ثبت در توکن (iss/aud).

Body Parameters (الزامی)

Parameter Type Description
username String نام کاربری همکار.
password String رمز عبور.
branch Integer شناسه شعبه فعال (Office ID).

Response Structure (Success)

Key Description
access_token توکن دسترسی JWT با طول عمر ۷ روز.
user.uuid شناسه رکورد همکار در جدول colleagues.
user.role نقش همکار:
  • pledger (اگر type=1 باشد - متعهد)
  • partner (سایر موارد - همکار)
user.ceiling اطلاعات سقف اعتباری:
  • amount: مبلغ اعتبار
  • deadline: مهلت تسویه (ماهانه)
user.data آبجکت جزئیات شامل نام آژانس، لوگو، تلفن و کدملی صاحب حساب.

Example Responses

۱. موفقیت آمیز (Login Success):

{
    "user": {
        "uuid": 105,
        "from": "colleague",
        "type": "agency",
        "role": "partner",
        "data": {
            "id": 88,
            "title": {
                "fa": "آژانس مسافرتی آسمان",
                "en": "Aseman Travel Agency"
            },
            "subtitle": {
                "fa": "user123 - علی رضایی",
                "en": "Aseman Travel Agency"
            },
            "additional": false,
            "avatar": "logo_105.jpg",
            "sex": "male",
            "first_name": "Ali",
            "last_name": "Rezaei",
            "first_name_fa": "علی",
            "last_name_fa": "رضایی",
            "mobile": "09121111111",
            "phone": "02188888888",
            "national_code": "0055555555"
        },
        "level": 2,
        "ceiling": {
            "amount": 50000000,
            "deadline": 1
        },
        "expired_at": null
    },
    "access_token": "eyJ0eXAiOiJjb2xsZWFndWUiLCJhbGciOiJIUzI1NiJ9..."
}

۲. خطا - اطلاعات نادرست (Invalid Credentials):

{
    "error": {
        "type": "username",
        "message": "اطلاعات وارد شده همخوانی ندارد."
    }
}

۳. خطا - حساب غیرفعال (Inactive Account):

{
    "error": {
        "type": "username",
        "message": "وضعیت شما بصورت غیرفعال می باشد."
    }
}

Technical Logic

Request (User + Pass + Branch)
Query DB (`colleague_auth`)
Match Username & Branch
Check expired_at > Now (or Null)
Record Found?
↓ Yes
Verify Password
Hash::check(input, db_hash)
↓ No
Error: Invalid Info
Status == 1?
↓ Yes (Active)
Logging
Dispatch `SystemLog` to snailJob queue (10min delay)
↓ No (Inactive)
Error: Inactive Status
Generate JWT
Type: colleague
Claims: uuid, brn, uip, brw
Return User Data + Token