{ "info": { "author": "Denis Darii", "author_email": "denis.darii@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python" ], "description": "=============================================================================\ndjango-dynamic-password: dynamic password authentication for your web service\n=============================================================================\n\n**Attention!** Only for really paranoid people as me.\n\nThe project code and bugtracker is hosted on\n`Bitbucket `_ and `Github `_.\n\n\nIntroduction\n============\n\ndjango-dynamic-password is a django application which allow you to add\ndynamic password authentication for your web service.\n\nHow it works?\n=============\nVerifies provided password according to DYNAMIC_PASSWORD_PATTERN in your\n``settings.py``. You can also enable this feature only for STAFF users, see below.\n\nYou can format the value of your DYNAMIC_PASSWORD_PATTERN according to:\nhttp://docs.python.org/library/datetime.html#strftime-and-strptime-behavior\n\n**Some examples.** Let's assume that today is **September 29th, 2022**, 8:01 (09-29-2022 8:01). Say your username is \"admin\" and password \"s3kr3t\", according to your DYNAMIC_PASSWORD_PATTERN in settings.py you will have:\n\nCase 1::\n\n DYNAMIC_PASSWORD_PATTERN = '%d'\n only today valid password: s3kr3t29\n\nCase 2::\n\n DYNAMIC_PASSWORD_PATTERN = '%d%H'\n only this hour valid password: 29s3kr3t08\n\nCase 3::\n\n DYNAMIC_PASSWORD_PATTERN = '%d%H-%M'\n only this minute valid password: 29s3kr3t08-01\n\nInstallation\n============\n\nThere are a few different ways to install dynamic_password:\n\nUsing pip\n---------\nIf you have pip install available on your system, just type::\n\n pip install django-dynamic-password\n\nIf you've already got an old version of dynamic_password, and want to upgrade,\nuse::\n\n pip install -U django-dynamic-password\n\nInstalling from a directory\n---------------------------\nIf you've obtained a copy of dynamic_password using either Mercurial or a\ndownloadable archive, you'll need to install the copy you have system-wide.\nTry running::\n\n python setup.py develop\n\nIf that fails, you don't have ``setuptools`` or an equivalent installed;\neither install them, or run::\n\n python setup.py install\n\nHow to configure dynamic_password?\n==================================\n\nIf you have already installed dynamic_password app, you must proceed with the\nconfiguration of your project.\n\nAdd dynamic_password to the INSTALLED_APPS\n--------------------------------------------\n\nOnce the dynamic_password is in your Python path, you need to modify the INSTALLED_APPS setting to include the dynamic_password module::\n\n INSTALLED_APPS = (\n # ...,\n # Third-party\n 'dynamic_password',\n # ...,\n )\n\nEnable the custom authentication backend\n-----------------------------------------\n\nTo activate this backend you need at least put dynamic_password.backends.\nDynamicPasswordBackend line to the AUTHENTICATION_BACKENDS tuple:\n\n AUTHENTICATION_BACKENDS = (\n 'dynamic_password.backends.DynamicPasswordBackend',\n )\n\nSet the DYNAMIC_PASSWORD_PATTERN in your settings.py\n----------------------------------------------------\n\nAdd this line to your settings.py:\n\n DYNAMIC_PASSWORD_PATTERN = '%m'\n\nchange it's value according to your needs.\nSome examples::\n\n DYNAMIC_PASSWORD_PATTERN = '%d'\n DYNAMIC_PASSWORD_PATTERN = '%m'\n DYNAMIC_PASSWORD_PATTERN = '%m%d'\n DYNAMIC_PASSWORD_PATTERN = '%d%Y'\n\nYou can format this value according to: http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior\n\nOptional: set DYNAMIC_PASSWORD_ONLY_STAFF\n----------------------------------------------------\n\nIn order to enable dynamic_password only for staff users you can add this\nline to your settings.py:\n\n DYNAMIC_PASSWORD_ONLY_STAFF = True\n\nFuture development plans\n========================\n- Enable \"per user\" dynamic password, DYNAMIC_PASSWORD_USERS = ('user1', 'user2', )", "description_content_type": null, "docs_url": null, "download_url": "http://bitbucket.org/DNX/django-dynamic-password/downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/DNX/django-dynamic-password/", "keywords": "dynamic password authentication", "license": "BSD License", "maintainer": null, "maintainer_email": null, "name": "dynamic_password", "package_url": "https://pypi.org/project/dynamic_password/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dynamic_password/", "project_urls": { "Download": "http://bitbucket.org/DNX/django-dynamic-password/downloads", "Homepage": "https://bitbucket.org/DNX/django-dynamic-password/" }, "release_url": "https://pypi.org/project/dynamic_password/0.0.3/", "requires_dist": null, "requires_python": null, "summary": "Add dynamic password authentication to your web service", "version": "0.0.3" }, "last_serial": 791463, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "7029589c18d3c6fa274a1bfb5e9f1fbb", "sha256": "aa07ce8c920e52cda49e4608465b0134257e2a09225ef7fcc65e3ca8387d6235" }, "downloads": -1, "filename": "dynamic_password-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7029589c18d3c6fa274a1bfb5e9f1fbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4826, "upload_time": "2012-04-26T18:28:51", "url": "https://files.pythonhosted.org/packages/5d/09/2f6d7ab69d6a8b506e41d167c2dbced926caf6a2c6498df07cd76f776fa3/dynamic_password-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "a5718ea1643da1c569b65019638b87a6", "sha256": "2abd8b6f4a3ebf0805e4b025bd874a89e3ebea590fe277accfc1e998c28a3b1a" }, "downloads": -1, "filename": "dynamic_password-0.0.2.tar.gz", "has_sig": false, "md5_digest": "a5718ea1643da1c569b65019638b87a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5469, "upload_time": "2012-04-27T11:22:11", "url": "https://files.pythonhosted.org/packages/85/36/7f7631fe9f668dcbfd3dc39ef780e95c9ed7dc9ccdf19eba613139bee070/dynamic_password-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c42dabfddce6aa10b424024fd91f2d71", "sha256": "62a2d6175a3fba14421a552ac6ef28c7333e6c2130e141ed64341e208cf3bcfa" }, "downloads": -1, "filename": "dynamic_password-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c42dabfddce6aa10b424024fd91f2d71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5667, "upload_time": "2012-04-27T18:21:20", "url": "https://files.pythonhosted.org/packages/38/fa/a17438c8f9f04efa232eec1211555d933cb81747db918ad5df2668fd1738/dynamic_password-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c42dabfddce6aa10b424024fd91f2d71", "sha256": "62a2d6175a3fba14421a552ac6ef28c7333e6c2130e141ed64341e208cf3bcfa" }, "downloads": -1, "filename": "dynamic_password-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c42dabfddce6aa10b424024fd91f2d71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5667, "upload_time": "2012-04-27T18:21:20", "url": "https://files.pythonhosted.org/packages/38/fa/a17438c8f9f04efa232eec1211555d933cb81747db918ad5df2668fd1738/dynamic_password-0.0.3.tar.gz" } ] }