#P1380
POST /api/auth/connect/branch
Auth - Connect Branch API Documentation
Route Info
| مورد | |
|---|---|
| Method | POST |
| Endpoint | /api/auth/connect/branch |
| Controller | UserController |
| Middleware فعال | ندارد |
| Purpose ( |
|
تحلیل عملکرد (Analysis)
دریافتEndpointفیلدیکنقطه ورود بدون احراز هویت (Unauthenticated) برای شناسایی و اعتبارسنجی شعبه است. هدف آن، بازگرداندن دامنه محیطی شعبه معتبر میباشد.branchمکانیزم کدگذاری شعبه
سیستم از
درخواستفرمول(BodyزیرJSON).برای محاسبهٔاستخراجمقدارشناسه واقعی شعبه از کدداخلی:ارسالیاستفاده𝑐میکند:𝑜Actual
𝑑Office𝑒ID =code=Inputrequest->get(‘branch’)Branch Code -1000;1000برای مثال اگر کد ورودی
1050باشد، شناسه واقعی شعبه50خواهد بود.منطق اعتبارسنجی
- استخراج شناسه واقعی با کسر 1000 از ورودی
- جستجو در جدول
officesبرایبریافتن رکوردی بااساسوcodeid =$codeResultstatus = 1. در صورت وجود، نخستین مقدار JSON دیکد شده ازبرگرداندن فیلدdomainبازگرداندهبهمیشود.عنوان - نتیجه در صورت
عدممعتبروجودبودن رکورد - بازگرداندن پیام خطای فارسی در صورت نبود رکورد
معتبر، خروجی خطا با کد اختصاصی1201برمیگردد.معتبر
ورودیها (Inputs)
فیلد نوع داده اجباریتوضیحتوضیحالزامیbranchinteger (JSON body)✅Integerکد شعبهٔ ورودیشعبه (مثلاً1050) که پس از کسر عدد1000شناسه واقعیدر+پایگاه1000)داده خواهد بود.بله نمونه:Example Request Body:json{“branch”"branch": 1050 }
خروجیها (Outputs)
پاسخ همیشه
HTTP 200بازمیگردد.خروجی موفق:
jsonفیلد نوع داده توضیح status Boolean همیشه truetime Integer زمان یونیکس پاسخ سرور data.domain String دامنهٔ مرتبط با شعبه {“status”"status": true,“data”"time": 1731324000, "data": {“domain”"domain":“"example.com”com" } }درخروجی
صورت خطا:ناموفق:json{“status”"status": false,“code”"code": 1201,“message”"message":“"کد دسترسی نا معتبر می باشد.”" }
وابستگیها (Dependencies)
وابستگی کاربردنوعتوضیح DB::table('offices')DB (offices)جستجویDatabaseدادهTableواکشی دامنهٔ شعبه وازدامنهپایگاه دادهIlluminate\Http\RequestFramework Class دریافت داده JSON ورودی کاربرresponse()->json() Laravel Helper ساخت خروجی JSON استاندارد نمونهٔتست و استفاده (Testing & Usage)مورد مقدار Method POST URL /api/auth/connect/branch Headers Content-Type: application/json ریکوئستExampleزیر برای تست در Postman قابل استفاده است:cURL:bashcurl -X POST\https://your-domain.yourdomain.com/api/auth/connect/branch \ -H“"Content-Type: application/json”json" \ -d‘'{“branch”"branch":1050}’'درموارد
پاسخخطاباید دامنهٔ معتبر شعبه بازگردد.(Typical Error
CasesCases)خطا علتکد HTTPکد HTTPعلتInvalid Branch Codeinvalid_branch_codeورود200عددیکد آنخارجشعبه پس ازمحدودهکسر 1000 در جدولofficesیافت نشود یاعدم وجود رکورد باوضعیتفعال 1400access_deniedدرخواست به دامنهٔ غیرمجاز یا شناسهٔ IP غیرقابلاعتماد (درصورت افزودن middleware در نسخههای بعد)403نباشد.جزئیات پیادهسازی (Conceptual Implementation)
$branch = $request->get('branch'); $code = $branch - 1000; $office = DB::table('offices') ->where('id', $code) ->where('status', 1) ->select('domain') ->first(); if ($office) { return response()->json([ 'status' => true, 'time' => now()->timestamp, 'data' => [ 'domain' => json_decode($office->domain)[0] ], ]); } return response()->json([ 'status' => false, 'code' => 1201, 'message'=> 'کد دسترسی نا معتبر می باشد.' ]);نتیجهنتیجه نهایی (Conclusion)این
endpointEndpointبرایبدوناتصال اولیهٔ اپراتور یا سیستم خارجینیاز بهدامنهٔتوکنصحیحاحرازسازمانیهویت،استفادهدامنه شعبه را تعیین میشودکند. طراحی آن ساده و سریع بوده و پایهٔ احرازهویتدرمراحلسایربعدیسرویسهای(connectOtp،وconnectSubmit)است.میباشد.عدمپیوست:
وجودنگهداریوابستگیوامنیتیامنیت- اعمال Rate Limiting برای جلوگیری از سوءاستفاده.
- اعتبارسنجی ورودی جهت جلوگیری از تزریق SQL (
Middleware)توسطنشانگرQueryآنBuilderاستایمن). - پیشنهاد:
بایدثبتدرلاگلایهٔبرایشبکههریاتلاشGatewayناموفق،کنترلافزودنشود.error-code مجزا برای موارد «شعبه یافت نشد» و «غیرفعال».
کهChangelog
Version Date Description Author 1.0.0 2024‑01‑15 Initial release API Team 1.0.1 2024‑03‑01 Error Handling update DevOps
این