{"id":18029836,"url":"https://github.com/zeioth/django-dual-authentication","last_synced_at":"2025-03-27T03:31:13.818Z","repository":{"id":57419821,"uuid":"27193246","full_name":"Zeioth/django-dual-authentication","owner":"Zeioth","description":"Allows authentication with either a username or an email address.","archived":false,"fork":false,"pushed_at":"2024-01-21T13:33:28.000Z","size":60,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T13:29:04.398Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zeioth.png","metadata":{"files":{"readme":"README.rst","changelog":"ChangeLog.txt","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Zeioth","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2014-11-26T19:42:59.000Z","updated_at":"2022-06-21T22:36:53.000Z","dependencies_parsed_at":"2024-01-21T14:45:29.679Z","dependency_job_id":null,"html_url":"https://github.com/Zeioth/django-dual-authentication","commit_stats":{"total_commits":67,"total_committers":3,"mean_commits":"22.333333333333332","dds":"0.14925373134328357","last_synced_commit":"da7324ccf5cd87ac914a6f8540a1fd20eec5890c"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeioth%2Fdjango-dual-authentication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeioth%2Fdjango-dual-authentication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeioth%2Fdjango-dual-authentication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeioth%2Fdjango-dual-authentication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zeioth","download_url":"https://codeload.github.com/Zeioth/django-dual-authentication/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245778612,"owners_count":20670682,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T09:11:38.862Z","updated_at":"2025-03-27T03:31:13.152Z","avatar_url":"https://github.com/Zeioth.png","language":"Python","funding_links":["https://github.com/sponsors/Zeioth"],"categories":[],"sub_categories":[],"readme":"`Django-dual-authentication \u003chttps://github.com/Zeioth/django-dual-authentication/\u003e`__\n==========================\n    \n.. image:: https://img.shields.io/pypi/v/django-dual-authentication.svg\n    :target:  https://pypi.python.org/pypi/django-dual-authentication/\n\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg\n    :target:  https://github.com/Zeioth/django-dual-authentication/blob/master/LICENSE\n\nThis package allows to authenticate a user with either a username an\nemail address, or both. It overrides\n`Django \u003chttps://www.djangoproject.com/\u003e`__ authenticate method, so it\nshould work in almost any case of use, without touch anything else.\n\nSupported versions:\n\n-  Python \u003e= 2.7\n-  Django \u003e= 1.5\n\nInstallation\n------------\n\nRun::\n\n    pip install django-dual-authentication\n\nThen, add this line to your settings.py::\n\n    AUTHENTICATION_BACKENDS = ['django-dual-authentication.backends.DualAuthentication']\n\nQuick and painless, right?\n\nSettings\n--------\n\n-  ``AUTHENTICATION_METHOD``: You can authenticate your users by\n   ``'username'``, ``'email'``, ``'both'``. Default: ``'both'``.\n-  ``AUTHENTICATION_CASE_SENSITIVE``: You can choose ``'username'``,\n   ``'email'``, ``'both'``, ``'none'``. Default: ``'username'``.\n\nCommon issues\n-------------\n\nWe've been reported about users having problems with MySQL and\ndual-authentication case sensitive option. This is because `mysql is\ncase-insensitive by\ndefault \u003chttps://docs.djangoproject.com/en/1.7/ref/databases/#collation-settings\u003e`__.\nSo, if you need case sensitive authentication, probably you'd prefer\navoid this database engine.\n\nAlso, note that if you combine certain options like\n``AUTHENTICATION_METHOD = 'username'`` and\n``AUTHENTICATION_CASE_SENSITIVE = 'username'``, then might be a good\nidea check if a not case sensitive user already exists, for your\nregistation form's username field. Other way, users having the same\nusername with different capital letters, will not be able to login, for\nobvious reasons.\n\nFinally, note that ``'email'`` and ``'both'``, are meant for very specific border cases. All email adresses of the internet are case insensitive, so it's recommended to use the values ``'none'`` or ``'username'``.\n\nTesting\n-------\n\n-  Clone this repository.\n-  Open testproject directory.\n-  Run syncdb or migrate depending your django version, and runserver.\n-  Open http://localhost:8000/admin/ and try to login.\n\nUpdates\n-----------\n\n-  Dec 2014: Stable release\n-  Dec 2015: All it's working fine. No changes.\n-  Dec 2016: All it's working fine. No changes.\n-  Dec 2017: All it's working fine. No changes.\n-  Dec 2018: All it's working fine. No changes.\n-  Apr 2019: Added support for django 2.0+ and Python 3.7.\n-  Jul 2020: All it's working fine. No changes.\n-  sep 2021: All it's working fine. No changes.\n-  Jun 2022: All it's working fine. No changes.\n-  Jan 2023: All it's working fine. No changes.\n-  Jan 2024: All it's working fine. No changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeioth%2Fdjango-dual-authentication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeioth%2Fdjango-dual-authentication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeioth%2Fdjango-dual-authentication/lists"}