{ "info": { "author": "Robinhood Markets", "author_email": "opensource@robinhood.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.9", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": ".. image:: https://deux.readthedocs.io/en/latest/_images/deux_banner.png\n :align: center\n :width: 721\n :height: 250\n\n|build-status| |codecov| |license| |wheel| |pyversion| |pyimp|\n\n:Version: 1.2.0\n:Web: https://deux.readthedocs.org/\n:Download: https://pypi.python.org/pypi/deux\n:Source: https://github.com/robinhood/deux\n:Keywords: authentication, two-factor, multifactor\n\nAbout\n=====\n\nMultifactor Authentication provides multifactor authentication integration for\nthe Django Rest Framework. It integrates with Token Authentication built into\nDRF and OAuth2 provided by django-oauth-toolkit_.\n\nWhat is Multifactor Authentication?\n====================================\n\nMultifactor Authentication (MFA) is a security system that requires more than\none method of authentication from independent categories of credentials to\nverify the user's identity for a login or other transaction.\n(Source: SearchSecurity_)\n\n.. _django-oauth-toolkit: https://django-oauth-toolkit.readthedocs.io/\n.. _SearchSecurity: http://searchsecurity.techtarget.com/definition/multifactor-authentication-MFA\n\n.. _installation:\n\nInstallation\n============\n\nYou can install deux either via the Python Package Index (PyPI)\nor from source.\n\nRequirements\n------------\n\n``deux`` version 1.2.0 runs on Python (2.7, 3.4, 3.5).\n\nInstalling with pip\n-------------------\n\nTo install using `pip`:\n::\n\n $ pip install -U deux\n\n.. _installing-from-source:\n\nDownloading and installing from source\n--------------------------------------\n\nDownload the latest version of deux from\nhttp://pypi.python.org/pypi/deux\n\nYou can install it by doing the following:\n::\n\n $ tar xvfz deux-0.0.0.tar.gz\n $ cd deux-0.0.0\n $ python setup.py build\n # python setup.py install\n\nThe last command must be executed as a privileged user if\nyou are not currently using a virtualenv.\n\n.. _installing-from-git:\n\nUsing the development version\n-----------------------------\n\nWith pip\n~~~~~~~~\n\nYou can install it by doing the following:\n::\n\n $ pip install https://github.com/robinhood/deux/zipball/master#egg=deux\n\n.. |build-status| image:: https://travis-ci.org/robinhood/deux.svg?branch=master\n :alt: Build status\n :target: https://travis-ci.org/robinhood/deux\n\n.. |license| image:: https://img.shields.io/pypi/l/deux.svg\n :alt: BSD License\n :target: https://opensource.org/licenses/BSD-3-Clause\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/deux.svg\n :alt: Deux can be installed via wheel\n :target: https://pypi.python.org/pypi/deux/\n\n.. |pyversion| image:: https://img.shields.io/pypi/pyversions/deux.svg\n :alt: Supported Python versions.\n :target: https://pypi.python.org/pypi/deux/\n\n.. |pyimp| image:: https://img.shields.io/pypi/implementation/deux.svg\n :alt: Support Python implementations.\n :target: https://pypi.python.org/pypi/deux/\n\n.. |codecov| image:: https://codecov.io/gh/robinhood/deux/branch/master/graph/badge.svg\n :alt: Code Coverage\n :target: https://codecov.io/gh/robinhood/deux", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/robinhood/deux", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "deux", "package_url": "https://pypi.org/project/deux/", "platform": "any", "project_url": "https://pypi.org/project/deux/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/robinhood/deux" }, "release_url": "https://pypi.org/project/deux/1.2.0/", "requires_dist": null, "requires_python": null, "summary": "Multifactor Authentication for Django Rest Framework", "version": "1.2.0" }, "last_serial": 2429272, "releases": { "0.0.1": [], "1.0.0": [ { "comment_text": "", "digests": { "md5": "99cd477a563ec10d0a750344d4bb0914", "sha256": "35b26685b0c6008b4af5d3e1b06931adbcf2a56ddd81dba4ed1b40e7c7c89774" }, "downloads": -1, "filename": "deux-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "99cd477a563ec10d0a750344d4bb0914", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 34894, "upload_time": "2016-09-07T22:47:24", "url": "https://files.pythonhosted.org/packages/3e/89/b08585e71e11e258f609fcfeac98dcb48b7d076460a019349990b1b68eb7/deux-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "304d2a89b4ce25bd586b6ae2b5bd80ea", "sha256": "d8f541810baf3080ed2d68aba3136f6fd8a98aa8bed79340a3b40cdefc6d80c7" }, "downloads": -1, "filename": "deux-1.0.0.tar.gz", "has_sig": true, "md5_digest": "304d2a89b4ce25bd586b6ae2b5bd80ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109612, "upload_time": "2016-09-07T22:47:01", "url": "https://files.pythonhosted.org/packages/8c/9d/056a4e465563c9dc452be3af9fd06449f0cabb6c5c09ab547d8186811caa/deux-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b5a40433882c02c554b0da02aefcef6b", "sha256": "414835120b0b9c8989f8948632444ab5afc54e55f8a8a967ddb21f1163406a8d" }, "downloads": -1, "filename": "deux-1.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b5a40433882c02c554b0da02aefcef6b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 34615, "upload_time": "2016-09-14T22:28:14", "url": "https://files.pythonhosted.org/packages/c3/88/07aba3fe2e28c1969aba5c765e5421b2c2df710d3439542e2a543bdcf18d/deux-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b57e6699eceaa1e24a675a088940a86", "sha256": "ff534e93e47d9373ad868a98406563fce38b8dc6750f21c64b9927ab12ba7427" }, "downloads": -1, "filename": "deux-1.1.0.tar.gz", "has_sig": true, "md5_digest": "5b57e6699eceaa1e24a675a088940a86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 646239, "upload_time": "2016-09-14T22:28:06", "url": "https://files.pythonhosted.org/packages/02/93/f1dd165719ff6b35d29b23e4361f659daefaf885f82b8a88fde882d2d7bd/deux-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "921a24b90e858d453296313f4aa51ae1", "sha256": "f884adbb385fc588f43d329099d0031eed7ce80f6155420e3dbe09d1d35b778a" }, "downloads": -1, "filename": "deux-1.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "921a24b90e858d453296313f4aa51ae1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 34589, "upload_time": "2016-09-15T00:01:10", "url": "https://files.pythonhosted.org/packages/ee/6c/6a077f9aaae3c0ff0a74b7553d48399cf5e0926fed26902b1a3174f51824/deux-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a63a84af0266f997903f24d4681c86c6", "sha256": "e3105fb7e114a7583d7aea260f73b48f3a49d36248c2101765739ceda793c10d" }, "downloads": -1, "filename": "deux-1.1.1.tar.gz", "has_sig": true, "md5_digest": "a63a84af0266f997903f24d4681c86c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 646269, "upload_time": "2016-09-15T00:01:01", "url": "https://files.pythonhosted.org/packages/57/f0/8599d25d57e8c7c71216c5f079c34312adfa12fc68934bbb34a8148d97c8/deux-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "337f88acd421e060d7fc74c4aa7e97f9", "sha256": "946091599da4d1e50c6837be79e4e7c492f0fabded6a69b35366b945b226af85" }, "downloads": -1, "filename": "deux-1.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "337f88acd421e060d7fc74c4aa7e97f9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 35245, "upload_time": "2016-10-28T17:38:40", "url": "https://files.pythonhosted.org/packages/28/64/3923d8a633c8c3d51d39c3d690228f6e931f7cad223ce3aea4e77093e48d/deux-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98ad511a285b71391dbc97c4087c8d98", "sha256": "d9c44e45f6f69a1c42f233f3aee04a2de4e9b20c04ff607d4691147d9564a9da" }, "downloads": -1, "filename": "deux-1.2.0.tar.gz", "has_sig": true, "md5_digest": "98ad511a285b71391dbc97c4087c8d98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 646822, "upload_time": "2016-10-28T17:38:30", "url": "https://files.pythonhosted.org/packages/72/32/22b35ddaa7fc33e5f64af420510b9133f6f92554bef6040c58ae28e27c59/deux-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "337f88acd421e060d7fc74c4aa7e97f9", "sha256": "946091599da4d1e50c6837be79e4e7c492f0fabded6a69b35366b945b226af85" }, "downloads": -1, "filename": "deux-1.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "337f88acd421e060d7fc74c4aa7e97f9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 35245, "upload_time": "2016-10-28T17:38:40", "url": "https://files.pythonhosted.org/packages/28/64/3923d8a633c8c3d51d39c3d690228f6e931f7cad223ce3aea4e77093e48d/deux-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98ad511a285b71391dbc97c4087c8d98", "sha256": "d9c44e45f6f69a1c42f233f3aee04a2de4e9b20c04ff607d4691147d9564a9da" }, "downloads": -1, "filename": "deux-1.2.0.tar.gz", "has_sig": true, "md5_digest": "98ad511a285b71391dbc97c4087c8d98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 646822, "upload_time": "2016-10-28T17:38:30", "url": "https://files.pythonhosted.org/packages/72/32/22b35ddaa7fc33e5f64af420510b9133f6f92554bef6040c58ae28e27c59/deux-1.2.0.tar.gz" } ] }