SMSWithoutBorders Backend
این یک API ابری و سرویس مدیریت کاربر است. این به طور مستقیم با پایگاه داده MySQL برای مدیریت کاربران قابل تنظیم است. همچنین ادغام های خارج از جعبه Google OAuth-2.0، Twitter OAuth، و نقاط پایانی تلگرام و احراز هویت حساب را فراهم می کند.
:::نکته آنچه یاد خواهید گرفت
- نحوه راه اندازی Backend
- نحوه آزمایش و استقرار با docker
جدیدترین نسخه این راهنما را میتوانید در [github reposistory
] (https://github.com/smswithoutborders/SMSwithoutborders-BE) پیدا کنید.
Backend با این خدمات یکپارچه می شود. ممکن است لازم باشد بسته به قسمتی که روی آن کار می کنید آنها را تنظیم کنید.
:::
فهرست مطالب
- [SMSWithoutBorders Backend] (#smswithoutborders-backend)
- [فهرست مطالب] (#جدول مطالب)
- [نیازها] (#نیازمندی ها)
- [نصب] (#نصب)
- [عیبیابی] (#عیبیابی)
- [تنظیم] (#راه اندازی)
- [پیکربندیهای محیط توسعه] (#توسعه-محیط-پیکربندی)
- [پیکربندیهای محیط تولید] (#production-environment-configurations)
- [گزینه های پیکربندی] (#configuration-options)
- [نحوه استفاده] (#روش استفاده)
- [Start Backend User Management API] (#start-backend-user-management-api)
- [محیط توسعه مدیریت کاربر] (#user-management-development-vironment)
- [محیط تولید مدیریت کاربر] (#user-management-production-vironment)
- [Start Backend Publisher API] (#start-backend-publisher-api)
- [محیط توسعه ناشران] (#ناشر-محیط-توسعه)
- [محیط تولید ناشر] (#ناشر-محیط تولید)
- Start both Backend User Management API and Backend Publisher API
- [محیط توسعه] (#توسعه-محیط)
- [محیط تولید] (#تولید-محیط)
- [API SandBox] (#api-sandbox)
- [API Logs] (#api-logs)
الزامات
- MySQL (نسخه >= 8.0.28) (MariaDB)
- nodejs (نسخه >= 16.14.0)
- npm (نسخه >= [8.3.1](https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64. tar.xz))
نصب و راه اندازی
تمام وابستگی های زمان اجرا با استفاده از npm نصب می شوند
npm install```
### عیب یابی
به چند دلیل، کاربران ممکن است گاهی اوقات در نصب با مشکل مواجه شوند. در اینجا چند دستورالعمل عیب یابی آورده شده است
- دایرکتوری «node_modules» و فایل «package-lock.json» را حذف کنید. دوباره نصب را امتحان کنید.
``باش
rm -rf node_modules package-lock.json
برپایی
همه فایلهای پیکربندی در فهرست config یافت میشوند. فایلهای پیکربندی بر اساس متغیرهای محیطی نامگذاری میشوند.
تنظیمات محیط توسعه
default.json فایل پیکربندی یک محیط توسعه است.
برای راهاندازی پایگاه داده، API و اعتبار پلتفرم برای یک محیط توسعه، فایلهای الگو را «example.default.json» کپی کنید و نام آن را به «default.json» تغییر دهید.
``باش cp config/example.default.json config/default.json
### تنظیمات محیط تولید
**[production.json](https://github.com/smswithoutborders/SMSwithoutborders-BE/blob/main/config/example.production.json)** فایل پیکربندی یک محیط تولید است.
برای راهاندازی پایگاه داده، API و اعتبار پلتفرم برای یک محیط productoin، فایلهای الگو را «example.production.json» کپی کنید و نام آن را به «production.json» تغییر دهید.
``باش
cp config/example.production.json config/production.json
گزینه های پیکربندی
اینها گزینه های هر پیکربندی فایل هستند
سرور
مدیریت دسترسی به پیامک بدون مرز متمرکز کردن منابع و خدمات.
پایگاه اطلاعاتی
- HOST: نام میزبان پایگاه داده ای که به آن متصل می شوید. (پیش فرض: localhost)
- USER: کاربر MySQL برای احراز هویت به عنوان. (پیشفرض: ریشه)
- PASSWORD: رمز عبور آن کاربر MySQL.
- DATABASE: نام پایگاه داده برای استفاده برای این اتصال (پیشفرض: smswithoutborders)
API
- USER MANAGEMENT API PORT: شماره پورتی که باید به آن متصل شوید. (پیشفرض: 9000)
- PUBLISHER API PORT: شماره پورتی که باید به آن متصل شوید. (پیشفرض: 10000)
- KEY: کلیدی که برای رمزگذاری داده های کاربر استفاده می شود. (پیشفرض: "de4053831a43d62d9e68fc11319270a9")
- SALT: نمکی که برای هش کردن داده های کاربر استفاده می شود. (پیشفرض: "acaad78fd9dadcb056840c09073190a8")
- SECURE SESSIONS: مقدار بولی را برای [خصیصه Secure Set-Cookie] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) مشخص می کند. وقتی حقیقت، صفت Secure تنظیم می شود، در غیر این صورت نیست. به طور پیش فرض، ویژگی Secure sessions روی truey تنظیم شده است.
- حداکثر جلسه: عدد مورد استفاده در هنگام محاسبه [ویژگی Expires Set-Cookie] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) را مشخص می کند (بر حسب میلی ثانیه) /Set-Cookie). این کار با در نظر گرفتن زمان سرور فعلی و افزودن حداکثر میلی ثانیه به مقدار برای محاسبه تاریخ انقضا انجام می شود. به طور پیش فرض، حداکثر سن برای دو ساعت (7200000 میلی ثانیه) تنظیم شده است.
- فعال کردن مسدود کردن: مقدار بولی را برای ردیابی کاربر ناموفق [احراز هویت] مشخص می کند (https://github.com/smswithoutborders/SMSwithoutborders-BE/blob/main/docs/FEATURES_v2.md#2-authenticate-an -account) تلاش می کند.
- تلاش های بلوک کوتاه: تعداد [احراز هویت] ناموفق را مشخص می کند (https://github.com/smswithoutborders/SMSwithoutborders-BE/blob/main/docs/FEATURES_v2.md#2-authenticate-an-account ) قبل از یک بلوک کوتاه تلاش می کند. چندین بلوک کوتاه منجر به یک بلوک طولانی می شود.
- تلاش های بلوک طولانی: تعداد تلاش های بلوک کوتاه ناموفق قبل از یک بلوک طولانی را مشخص می کند.
- SHORT BLOCK DURATION: مدت زمان (بر حسب دقیقه) یک بلوک کوتاه را مشخص می کند.
- LONG BLOCK DURATION: مدت زمان (بر حسب دقیقه) یک بلوک طولانی را مشخص می کند.
OTP
یک کاربر روزانه چهار بار برای درخواست یک کد OTP تلاش می کند
- ENABLE_OTP_BLOCKING: مقدار بولی را برای روشن/خاموش کردن ردیابی درخواست های کد OTP مشخص می کند.
- FIRST RESEND DURATION: مدت زمان (بر حسب میلی ثانیه) برای اولین درخواست OTP را مشخص می کند.
- SECOND RESEND DURATION: مدت زمان (بر حسب میلی ثانیه) برای دومین درخواست OTP را مشخص می کند.
- ** THIRD RESEND DURATION **: مدت زمان (بر حسب میلی ثانیه) برای سومین درخواست OTP را مشخص می کند.
- FOURTH RESEND DURATION: مدت زمان (بر حسب میلی ثانیه) برای چهارمین درخواست OTP را مشخص می کند. GATEWAY Server
این یک مورد استفاده از پروژه SMSWithoutBorders-Gateway-Server است.
- URL: URL سرور دروازه ای که به آن متصل می شوید. (پیش فرض: localhost)
- PORT: شماره پورتی که باید به آن متصل شوید. (پیشفرض: 6969)
شروع
هدر Access-Control-Allow-Origin CORS را پیکربندی می کند. مقادیر ممکن:
آرایه - مبدا را به آرایه ای از مبداهای معتبر تنظیم کنید. هر مبدا می تواند یک String یا یک RegExp باشد. برای مثال ["http://example1.com"، /.example2.com$/] هر درخواستی را از "http://example1.com" یا از زیر دامنه "example2.com" می پذیرد. (پیشفرض: "localhost:18000")
SSL API
- API PORT: شماره پورتی که باید به آن متصل شوید.
- CERTIFICATE: مسیری به گواهی SSL شما.
- **KEY **: مسیر به کلید SSL شما.
- PEM: مسیری به SSL PEM شما.
اعتبارنامه
گوگل
اطلاعات کاربری را از [کنسول Google Cloud Platform] (https://console.cloud.google.com/) دریافت کنید
- شناسه مشتری GOOGLE: شناسه مشتری Google شما
- محرمانه مشتری GOOGLE: راز مشتری گوگل شما
توییتر
اعتبارنامه ها را از [درگاه توسعه دهندگان توییتر] (https://developer.twitter.com/en/docs/developer-portal/overview) دریافت کنید
- ** TWITTER API KEY **: کلید API توییتر شما
- ** TWITTER API KEY SECRET **: رمز کلید API توییتر شما
تلگرام
این یک مورد استفاده از پروژه SMSWithoutBorders-customplatform-Telegram است.
- **تلگرام درخواست میزبان **: آدرس سرور پلتفرم سفارشی تلگرام که به آن متصل می شوید.
RECAPTCHA
دریافت KEY از Google reCAPTCHA
- ENABLE RECAPTCHA: مقدار بولی را برای روشن/خاموش کردن recaptcha مشخص می کند.
- کلید محرمانه: کلید مخفی Google reCAPTCHA شما
توسعه دهنده
دسترسی به پیامک بدون مرز منبع توسعه دهندگان را مدیریت می کند.
- HOST: URL سرور توسعه دهندگانی که به آن متصل می شوید. (پیش فرض: localhost)
- PORT: شماره پورتی که باید به آن متصل شوید. (پیشفرض: 12000)
How to use
Start Backend User Management API
User management development environment
- with NPM
``Be Run npm start_main
- with NODE
``Be
node controllers/sync_platforms.js && node server.js
مدیریت کاربر محیط تولید
- با NPM
``باش NODE_ENV=production npm start_main را اجرا کنید
- با NODE
``باش
NODE_ENV=production node controllers/sync_platforms.js && node server.js
### Start the Backend Publisher API
#### Publisher development environment
- with NPM
``Be
Run npm start_pub
- with NODE
``Be node controllers/sync_platforms.js && node server_pub.js
#### محیط تولید ناشر
- با NPM
``باش
NODE_ENV=production npm start_pub را اجرا کنید
- با NODE
``باش NODE_ENV=گره کنترلرهای تولید/sync_platforms.js && node server_pub.js
### هم API مدیریت کاربر Backend و هم API Publisher Backend را شروع کنید
#### محیط توسعه
- با NPM
``باش
npm شروع اجرا
محیط تولید
- با NPM
``باش NODE_ENV= شروع تولید npm
## API SandBox
http://localhost:{PORT}/v1/api-docs
http://localhost:{PORT}/v2/api-docs
## گزارش های API
بهطور پیشفرض [سطوح ورود] (https://github.com/smswithoutborders/SMSwithoutborders-BE/tree/main) روی «info» تنظیم شدهاند. میتوانید [سطوح ورود] را تغییر دهید (https://github.com/smswithoutborders/SMSwithoutborders-BE/tree/main/). برای مثال، [Start both Backend User Management API and Backend Publisher API](#Start-both-Backend-User-management-API-and-Backend-Publisher-API) با [log level](https://github.com/smswithoutborders/SMSwithoutborders-BE/tree/main) روی "اشکال زدایی" تنظیم شد
LOG_LEVEL=اشکال npm اشکال زدایی
همه فایلهای گزارش در فهرست سیاههها یافت میشوند. [بیشتر بخوانید](https://github.com/smswithoutborders/SMSwithoutborders-BE/tree/main/) ...