{ "info": { "author": "Sanyam Khurana", "author_email": "sanyam@sanyamkhurana.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "django-phone-verify\n===================\n\n.. image:: https://travis-ci.org/CuriousLearner/django-phone-verify.svg?branch=master\n :target: https://travis-ci.org/CuriousLearner/django-phone-verify\n\n.. image:: https://coveralls.io/repos/github/CuriousLearner/django-phone-verify/badge.svg?branch=master\n :target: https://coveralls.io/github/CuriousLearner/django-phone-verify?branch=master\n\n.. image:: https://pypip.in/license/django-phone-verify/badge.svg\n :target: https://pypi.python.org/pypi/django-phone-verify/\n :alt: License\n\n.. image:: https://img.shields.io/badge/Made%20with-Python-1f425f.svg\n :target: https://www.python.org/\n\n.. image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg\n :target: https://GitHub.com/CuriousLearner/django-phone-verify/graphs/commit-activity\n\n.. image:: https://badge.fury.io/py/django-phone-verify.svg\n :target: https://pypi.python.org/pypi/django-phone-verify/\n\n.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n :target: http://makeapullrequest.com\n\n\nA Django app to support phone number verification using the security code sent via SMS.\n\nSalient Features\n----------------\n\n- Lets you verify phone numbers via SMS.\n- Extensibility to provide tokens with varying length.\n- Comes with Twilio already integrated.\n- Set expiration time on tokens.\n- Provides an interface for writing custom SMS sending backend for easy extensibility.\n- Does not mess-up with existing ``AUTH_USER_MODEL`` at all.\n- Can be used for a number of potential use-cases, and not just auth.\n- Provides ready endpoints for sending SMS and verification (See `api_endpoints.rst`_).\n\n.. _api_endpoints.rst: https://github.com/CuriousLearner/django-phone-verify/blob/master/phone_verify/docs/api_endpoints.rst\n\nInstallation\n------------\n\n.. code-block:: shell\n\n pip install django-phone-verify\n\nConfiguration\n-------------\n\n- Add app to `INSTALLED_APPS`\n\n.. code-block:: python\n\n # In settings.py:\n\n # Add app to `INSTALLED_APPS`\n INSTALLED_APPS = [\n ...\n \"phone_verify\",\n ]\n\n- Add settings for Phone Verify as you desire:\n\n.. code-block:: python\n\n # In settings.py\n # Add settings for phone_verify to work\n PHONE_VERIFICATION = {\n \"BACKEND\": \"phone_verify.backends.twilio.TwilioBackend\",\n \"OPTIONS\": {\n \"SID\": \"fake\",\n \"SECRET\": \"fake\",\n \"FROM\": \"+14755292729\",\n \"SANDBOX_TOKEN\": \"123456\",\n },\n \"TOKEN_LENGTH\": 6,\n \"MESSAGE\": \"Welcome to {app}! Please use security code {security_code} to proceed.\",\n \"APP_NAME\": \"Phone Verify\",\n \"SECURITY_CODE_EXPIRATION_TIME\": 3600, # In seconds only\n \"VERIFY_SECURITY_CODE_ONLY_ONCE\": False, # If False, then a security code can be used multiple times for verification\n }\n\nUsage\n-----\n\n- To explore more about how to use, integrate and leverage existing functionality of ``Django Phone Verify``, have a look at `usage.rst`_\n\n.. _usage.rst: https://github.com/CuriousLearner/django-phone-verify/blob/master/docs/usage.rst\n\nCompatibility\n-------------\n- Django 2.1+\n- Django REST Framework 3.9+\n\nContributing\n------------\n\nNo code is bug-free and I'm sure this app will have bugs. If you find any bugs, please create an issue on GitHub.\n\nLicence\n-------\n\nGPLv3\n\nRelease Notes\n--------------\n\n[1.0.0]\n^^^^^^^\n\nAdded\n\"\"\"\"\"\n\n- Add coverage report through ``coveralls``.\n- Support for One-Time Passwords (OTP) using ``VERIFY_SECURITY_CODE_ONLY_ONCE`` as ``True`` in the settings.\n- Script to support makemigrations for development.\n- ``BaseBackend`` status now have ``SECURITY_CODE_VERIFIED`` and ``SESSION_TOKEN_INVALID`` status to support new states.\n\nChanged\n\"\"\"\"\"\"\"\n\n- Rename ``TWILIO_SANDBOX_TOKEN`` to ``SANDBOX_TOKEN``.\n- Fix signature for ``send_bulk_sms`` method in ``TwilioBackend`` and ``TwilioSandboxBackend``.\n- Response for ``/api/phone/register`` contains key ``session_token`` instead of ``session_code``.\n- Request payload for ``/api/phone/verify`` now expects ``session_token`` key instead of ``session_code``.\n- Response for ``/api/phone/verify`` now sends additional response of ``Security code is already verified`` in case ``VERIFY_SECURITY_CODE_ONLY_ONCE`` is set to ``True``.\n- Rename ``otp`` to ``security_code`` in code and docs to be more consistent.\n- Rename ``BaseBackend`` status from ``VALID``, ``INVALID``, ``EXPIRED`` to ``SECURITY_CODE_VALID``, ``SECURITY_CODE_INVALID``, and ``SECURITY_CODE_EXPIRED`` respectively.\n- Rename ``session_code`` to ``session_token`` to be consistent in code and naming across the app.\n- Rename service ``send_otp_and_generate_session_code`` to ``send_security_code_and_generate_session_token``.\n- Rename method ``BaseBackend.generate_token`` to ``BaseBackend.generate_security_code``.\n- Rename method ``create_otp_and_session_token`` to ``create_security_code_and_session_token``.\n- Rename method ``BaseBackend.validate_token`` to ``BaseBackend.validate_security_code`` with an additional parameter of ``session_token``.\n\n[0.2.0]\n^^^^^^^\n\nAdded\n\"\"\"\"\"\n\n- ``pre-commit-config`` to maintain code quality using black and other useful tools.\n- Docs for integration and usage in `usage.rst`_.\n- Tox for testing on `py{37}-django{20,21,22}`.\n- Travis CI for testing builds.\n\nChanged\n\"\"\"\"\"\"\"\n\n- Convert ``*.md`` docs to reST Markup.\n- Fix issue with installing required package dependencies via ``install_requires``.\n\n[0.1.1]\n^^^^^^^\n\nAdded\n\"\"\"\"\"\n\n- README and documentation of API endpoints.\n- ``setup.cfg`` to manage coverage.\n- ``phone_verify`` app including backends, requirements, tests.\n- Intial app setup.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CuriousLearner/django-phone-verify", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "django-phone-verify", "package_url": "https://pypi.org/project/django-phone-verify/", "platform": "", "project_url": "https://pypi.org/project/django-phone-verify/", "project_urls": { "Homepage": "https://github.com/CuriousLearner/django-phone-verify" }, "release_url": "https://pypi.org/project/django-phone-verify/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "A Django app to support phone number verification using security code sent via SMS.", "version": "1.0.0" }, "last_serial": 5791856, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f78c494fd1029cdb1c0affd603a9038a", "sha256": "3a44c6272ae3e9657d335df3b955b8e6147ead8775d78e1a96f79fc4e07f473a" }, "downloads": -1, "filename": "django-phone-verify-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f78c494fd1029cdb1c0affd603a9038a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20454, "upload_time": "2019-02-18T07:53:17", "url": "https://files.pythonhosted.org/packages/72/62/acf8e9e9334f31317184bd3ef2eb13b1db5bd56dd57f7298e97875b53c92/django-phone-verify-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "927d78cfc81b45dd5ff5dbea313a3352", "sha256": "61d5bffebc724d9fc5dccc04853ff6ae0cb749dbc54f2c1c5eb80577306fa5fd" }, "downloads": -1, "filename": "django-phone-verify-0.1.1.tar.gz", "has_sig": false, "md5_digest": "927d78cfc81b45dd5ff5dbea313a3352", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20606, "upload_time": "2019-06-18T10:34:01", "url": "https://files.pythonhosted.org/packages/01/1f/8468d93949688ad9b7331c67bae47cdae0bf44e1c9dcffaa2733cd167b6c/django-phone-verify-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7924c85eebd46b554b42d9b5d7e6b258", "sha256": "6c44ddbd39eff839be2f7b2787d77564db0ba6e839bf9d7f1759d98a43ada04e" }, "downloads": -1, "filename": "django-phone-verify-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7924c85eebd46b554b42d9b5d7e6b258", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22175, "upload_time": "2019-08-12T09:45:14", "url": "https://files.pythonhosted.org/packages/9e/dc/ba5b2d54eb68e753a259f33e01f72baea1b82e4bf766f9951e163388608c/django-phone-verify-0.2.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "531a1feb67d7b16304254a6e2f6ac4af", "sha256": "8ee3d38d345662c0f6ddd080389ef50fb44918a7f1ea03b503fa44fdad33bc1c" }, "downloads": -1, "filename": "django-phone-verify-1.0.0.tar.gz", "has_sig": false, "md5_digest": "531a1feb67d7b16304254a6e2f6ac4af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24882, "upload_time": "2019-09-06T12:06:02", "url": "https://files.pythonhosted.org/packages/81/07/ee09a15dde564023a6c5102ea60678dbf867db897780c804b18a3711282e/django-phone-verify-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "531a1feb67d7b16304254a6e2f6ac4af", "sha256": "8ee3d38d345662c0f6ddd080389ef50fb44918a7f1ea03b503fa44fdad33bc1c" }, "downloads": -1, "filename": "django-phone-verify-1.0.0.tar.gz", "has_sig": false, "md5_digest": "531a1feb67d7b16304254a6e2f6ac4af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24882, "upload_time": "2019-09-06T12:06:02", "url": "https://files.pythonhosted.org/packages/81/07/ee09a15dde564023a6c5102ea60678dbf867db897780c804b18a3711282e/django-phone-verify-1.0.0.tar.gz" } ] }