Skip to main content

Authentication system, online and real-time chat, SMS system for Iranian SMS services.

Project description

django-chelseru یک بسته جنگویی برای گپ‌زنی همزمان، راستی‌آزمایی پیامکی و فرستادن پیامک با یاری‌دهنده‌های ایرانی.

نویسنده Sobhan Bahman Rashnu

🚀 ویژگی‌ها 📱 راستی‌آزمایی پیامکی (رمز یک‌بارمصرف): راستی‌آزمایی امن کاربران با یاری‌گیری از رمزهای یک‌بارمصرف که از راه پیامک فرستاده می‌شوند.

💬 گپ‌زنی همزمان: کارکرد پیام‌رسانی همزمان بر پایه WebSocket.

✉️ سامانه‌های پیامکی: فرستادن پیامک از راه یاری‌دهنده‌های نامور پیامکی ایرانی.

⚙️ نصب بسته را با یاری‌گیری از pip نصب کنید:

pip install django-chelseru

'drfchelseru' را به INSTALLED_APPS در پرونده settings.py خود بیفزایید:

INSTALLED_APPS = [ ... 'channels', 'rest_framework', 'rest_framework_simplejwt', 'drfchelseru', ... ]

🛠️ پیکربندی برای پیکربندی بسته، واژه‌نامه DJANGO_CHELSERU را به پرونده settings.py خود بیفزایید. این واژه‌نامه به شما پروانه می‌دهد تا چیدمان‌های راستی‌آزمایی و پیامک را خودساخته نمایید.

settings.py

DJANGO_CHELSERU = { 'AUTH': { 'AUTH_METHOD' : 'OTP', # روش‌های پشتیبانی شده: OTP, PASSWD 'AUTH_SERVICE' : 'rest_framework_simplejwt', # سرویس‌های پشتیبانی شده: rest_framework_simplejwt 'OPTIONS': { 'OTP_LENGTH' : 8, # پیش‌فرض: 8 'OTP_EXPIRE_PER_MINUTES': 4, # پیش‌فرض: 4 'OTP_SMS_TEMPLATE_ID' : 1, # شناسه قالب پیامکی برای رمز یک‌بارمصرف } }, 'SMS': { 'SMS_SERVICE': 'PARSIAN_WEBCO_IR', # یاری‌دهنده‌های پشتیبانی شده: PARSIAN_WEBCO_IR, MELI_PAYAMAK_COM, KAVENEGAR_COM 'SETTINGS': { 'PARSIAN_WEBCO_IR_API_KEY' : '', 'MELI_PAYAMAK_COM_USERNAME' : '', 'MELI_PAYAMAK_COM_PASSWORD' : '', 'MELI_PAYAMAK_COM_FROM' : '', 'KAVENEGAR_COM_API_KEY' : 'YOUR_KAVENEGAR_API_KEY', 'KAVENEGAR_COM_FROM' : 'YOUR_KAVENEGAR_FROM_NUMBER', }, 'TEMPLATES': { 'T1': 1, 'T2': 2, ... } } }

AUTH_METHOD: روش راستی‌آزمایی را روشن می‌سازد. برای راستی‌آزمایی پیامکی، از 'OTP' بهره بگیرید.

OTP_LENGTH: درازای رمز یک‌بارمصرف.

OTP_EXPIRE_PER_MINUTES: زمان پایان‌یافتن رمز یک‌بارمصرف بر پایه دقیقه.

OTP_SMS_TEMPLATE_ID: شناسه قالب پیامکی که برای فرستادن رمز یک‌بارمصرف بهره گرفته می‌شود.

SMS_SERVICE: یاری‌دهنده پیامکی دلخواه خود را برگزینید.

SETTINGS: آگاهی‌های نیاز برای یاری‌دهنده پیامکی برگزیده‌تان را فراهم آورید.

TEMPLATES: شناسه‌های قالب پیامکی خود را روشن سازید.

🔌 نقطه‌های پایانی برای به کارگیری کارکردهای این بسته، URLهای زیر را به پرونده urls.py خود بیفزایید.

urls.py

from django.urls import path, include

urlpatterns = [ ... path('api/', include('drfchelseru.urls')), ... ]

این بسته نقطه‌های پایانی API زیر را فراهم می‌آورد:

نقطه‌ پایانی

شرح

روش

/api/otp/send/

یک رمز یک‌بارمصرف به شماره همراه گفته‌شده می‌فرستد.

POST

/api/authenticate/

کاربری را با رمز یک‌بارمصرف دریافت‌شده، راستی‌آزمایی می‌کند.

POST

/api/sessions/

نشست‌های فعال کاربر را فهرست کرده و درایوری می‌کند.

GET

/api/message/send/

یک پیامک با یاری‌دهنده پیکربندی‌شده می‌فرستد.

POST

به کارگیری نقطه‌های پایانی

  1. فرستادن رمز یک‌بارمصرف (/api/otp/send/) روش: POST شرح: یک رمز یک‌بارمصرف به شماره همراه کاربر می‌فرستد.

داده‌نماهای نیاز:

داده‌نما

گونه

شرح

نمونه

mobile_number

str

شماره همراه کاربر.

09121234567

پاسخ‌ها:

HTTP 200 OK: رمز یک‌بارمصرف با کامیابی فرستاده شد.

{"details": "The OTP code was sent correctly."}

HTTP 400 BAD REQUEST: ساختار نادرست mobile_number.

HTTP 409 CONFLICT: یک رمز یک‌بارمصرف پیش‌تر فرستاده شده و هنوز روایی دارد.

{"details": "An OTP code has already been sent. Please wait X seconds before trying again."}

HTTP 500 INTERNAL SERVER ERROR: یک دشواری در کارگذار پیش آمده است.

  1. راستی‌آزمایی (/api/authenticate/) روش: POST شرح: کاربر را با رمز یک‌بارمصرف فراهم شده، راستی‌آزمایی می‌کند. اگر با کامیابی انجام شود، توکن‌های JWT (access و refresh) را بازمی‌گرداند.

داده‌نماهای نیاز:

داده‌نما

گونه

شرح

نمونه

mobile_number

str

شماره همراه کاربر.

09121234567

code

str

رمز یک‌بارمصرف دریافت شده از راه پیامک.

12345678

group

int

اختیاری: یک شناسه دسته برای کاربر.

1

پاسخ‌ها:

HTTP 200 OK: راستی‌آزمایی با کامیابی انجام شد.

{ "access": "...", "refresh": "..." }

HTTP 401 UNAUTHORIZED: رمز یک‌بارمصرف ناروا یا پایان‌یافته.

{"error": "The code sent to this mobile number was not found."}

HTTP 400 BAD REQUEST: داده‌نماهای نیاز ناپیدا یا ساختار نادرست.

HTTP 500 INTERNAL SERVER ERROR: یک دشواری در کارگذار پیش آمده است.

  1. فرستادن پیامک (/api/message/send/) روش: POST شرح: یک پیامک خودساخته را با یاری‌دهنده پیکربندی‌شده می‌فرستد.

داده‌نماهای نیاز:

داده‌نما

گونه

شرح

نمونه

mobile_number

str

شماره همراه گیرنده.

09121234567

message_text

str

نوشتار پیام. (بیشینه ۲۹۰ نویسه)

Hello, World!

template_id

int

برای برخی یاری‌دهنده‌ها (برای نمونه پارسیان) نیاز است.

1

پاسخ‌ها:

HTTP 200 OK: پیام با کامیابی فرستاده شد.

{"details": "The Message was sent correctly."}

HTTP 400 BAD REQUEST: دشواری‌های درست‌سنجی برای داده‌نماها.

HTTP 401 UNAUTHORIZED: راستی‌آزمایی انجام نشد.

HTTP 500 INTERNAL SERVER ERROR: یک دشواری در کارگذار پیش آمده است.

HTTP 502 BAD GATEWAY: یاری‌دهنده پیامکی یک دشواری را بازگرداند.

  1. فهرست نشست‌ها (/api/sessions/) روش: GET شرح: همه نشست‌های فعال کاربران را فهرست می‌کند. نیاز به راستی‌آزمایی (IsAuthenticated) دارد.

سربرگ‌های نیاز:

سربرگ

ارزش

Authorization

Bearer <your_access_token>

💡 مدل‌ها این بسته یک مدل Session برای درایوری نشست‌های فعال کاربران دارد. می‌توانید به این نشست‌ها از راه نقطه‌ پایانی /api/sessions/ دسترسی یافته و آنها را درایوری کنید.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_chelseru-1.0.5.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_chelseru-1.0.5-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file django_chelseru-1.0.5.tar.gz.

File metadata

  • Download URL: django_chelseru-1.0.5.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for django_chelseru-1.0.5.tar.gz
Algorithm Hash digest
SHA256 0dc517fcb6ce6f3b83d01a82898e748e7b71ea12d9c9221218204251cc9019db
MD5 a11868eb63d10c196eede6875aae7d89
BLAKE2b-256 4c0421fa680feadbb8fd3c1ec6393380b0a5d7a954420d78f3edb30cfdf20f8b

See more details on using hashes here.

File details

Details for the file django_chelseru-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for django_chelseru-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 03c4825afcdac146a5734a28e2dd1b6b7ea2a0368bbc5f4a1e25742049d811c0
MD5 b519fb586ffd7ab900087f7b3cb682d2
BLAKE2b-256 3ee7dd17b9b7233ee1da9fe8964ed88021f7dc067316baf25b2ca5bc5cd182f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page