Skip to main content

Connection with Iranian SMS services for user authentication or sending messages.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Django Iran SMS

Overview

A Django-based SMS integration system for simplifying in-country SMS usage in Iran, leveraging the parsianwebco.ir service with JWT authentication. Developed by the Chelseru team, this package is designed to support additional services in future releases.

Features

  • Integration with parsianwebco.ir
  • JWT-based authentication using rest_framework_simplejwt
  • Scalable and extensible for other SMS providers
  • Easy installation and configuration

Installation

Prerequisites

  • Python 3.x
  • Django 3.x or higher

Installation via pip

pip install django-iran-sms

Configuration

In your Django project's settings.py, add the following parameters:

settings.py

INSTALLED_APPS = [
...
'drfiransms', # When used in DRF.

]
DJANGO_IRAN_SMS = {
    'AUTHENTICATION': 'rest_framework_simplejwt',  # Specify the authentication method
    'SMS_BACKEND': 'PARSIAN_WEBCO_IR',  # Set the SMS provider backend
    'OTP_CODE': {
        'LENGTH': 8,  # Default length of OTP code
        'EXPIRE_PER_MINUTES': 4,  # Default expiration time in minutes
    },
    'PARSIAN_WEBCO_IR': {
        'API_KEY': 'API_KEY obtained from sms.parsianwebco.ir',  # API key from the SMS provider
        'TEMPLATES': {
            'OTP_CODE': 1,  # Template ID for OTP code
        }
    }
}

Usage

URL Configuration

In your urls.py, include the following views:

  • OTPCodeSend: For sending OTP codes.
  • Authentication: For handling authentication and optional registration.

urls.py

from drfiransms.views import OTPCodeSend, Authentication

urlpatterns += [
    path('lur/send-code/', OTPCodeSend.as_view(), name='send_code'),  # Endpoint to send OTP code
    path('lur/authentication/', Authentication.as_view(), name='authentication')  # Endpoint for authentication
]

Sending Verification Code via API

To send a POST request for receiving a verification code for a mobile number, use the following structure:

curl -X POST https://djangoiransms.chelseru.com/lur/send-code/ \
     -H "Content-Type: application/json" \
     -d '{
           "mobile": "09123456789"
         }'
curl -X POST https://djangoiransms.chelseru.com/lur/authentication/ \
     -H "Content-Type: application/json" \
     -d '{
           "mobile": "09123456789",
           "code": "108117114"
         }'

User Table

This package automatically creates a User table in the Django admin with two fields:

  • mobile: Stores the user's mobile number.
  • user: A one-to-one relationship with Django's default User model.

JWT Authentication

This package supports JWT authentication using the rest_framework_simplejwt package. The system is compatible with this authentication method for secure communication with the SMS gateway. Other authentication and login methods are currently under development.

Future Plans

  • Support for additional SMS providers.
  • Enhanced error handling.
  • Rate limiting and monitoring.
  • Contribution

Contributions are welcome! Please submit pull requests or report issues on the GitHub repository.

License

MIT License

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_iran_sms-1.0.3.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

django_iran_sms-1.0.3-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file django_iran_sms-1.0.3.tar.gz.

File metadata

  • Download URL: django_iran_sms-1.0.3.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.11.11

File hashes

Hashes for django_iran_sms-1.0.3.tar.gz
Algorithm Hash digest
SHA256 4e5da695bbea30ac60ffae1f2e3a807c1bcc9e32ed33f74b1da876fa11a588fe
MD5 15c91a95a1234c50b535836f026cf054
BLAKE2b-256 6a73e4cae1f56f31146d61bcf641d0ca05044fdd377bec7a80ed50d65d5d6d55

See more details on using hashes here.

File details

Details for the file django_iran_sms-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: django_iran_sms-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.11.11

File hashes

Hashes for django_iran_sms-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f0e105da3b66a0ec0fb87b536c3092d98a88c0f2b7c4e23fbf261842338d0a8b
MD5 f7e942cf3a6d8677efbf63fab0f8ef13
BLAKE2b-256 f00c763c97cb0f090f7dcc2e5a1f00e120a1e4ec91ff67000146925236392b20

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