{"id":15099111,"url":"https://github.com/sultaniman/django-auth0","last_synced_at":"2025-10-08T05:30:16.619Z","repository":{"id":57419007,"uuid":"52535525","full_name":"sultaniman/django-auth0","owner":"sultaniman","description":"Auth0 authentication backend for awesome Django apps","archived":true,"fork":false,"pushed_at":"2022-12-26T20:25:01.000Z","size":65,"stargazers_count":56,"open_issues_count":6,"forks_count":19,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-29T02:23:17.625Z","etag":null,"topics":["auth0","authentication","backend","django"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sultaniman.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-25T15:30:04.000Z","updated_at":"2024-11-28T16:32:20.000Z","dependencies_parsed_at":"2023-01-31T01:15:24.763Z","dependency_job_id":null,"html_url":"https://github.com/sultaniman/django-auth0","commit_stats":null,"previous_names":["imanhodjaev/django-auth0"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/sultaniman/django-auth0","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sultaniman%2Fdjango-auth0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sultaniman%2Fdjango-auth0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sultaniman%2Fdjango-auth0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sultaniman%2Fdjango-auth0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sultaniman","download_url":"https://codeload.github.com/sultaniman/django-auth0/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sultaniman%2Fdjango-auth0/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278892036,"owners_count":26063918,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["auth0","authentication","backend","django"],"created_at":"2024-09-25T17:05:42.742Z","updated_at":"2025-10-08T05:30:16.312Z","avatar_url":"https://github.com/sultaniman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"============\ndjango-auth0\n============\n\n.. image:: https://codecov.io/gh/imanhodjaev/django-auth0/branch/master/graph/badge.svg\n  :target: https://codecov.io/gh/imanhodjaev/django-auth0\n\n.. image:: https://landscape.io/github/imanhodjaev/django-auth0/master/landscape.svg?style=flat\n   :target: https://landscape.io/github/imanhodjaev/django-auth0/master\n   :alt: Code Health\n\n.. image:: https://travis-ci.org/imanhodjaev/django-auth0.png?branch=master\n    :target: https://travis-ci.org/imanhodjaev/django-auth0\n\nDjango Auth0 authentication backend\nBackend implemented against Auth0 `Regular Python application`_\n\n\nPlease use official tutorial and libraries from Auth0 https://auth0.com/docs/quickstart/webapp/django/01-login\n\nQuickstart\n----------\n\n* Install django-auth0 ``$ pip install django-auth0``\n\n* Add ``django_auth0`` to ``INSTALLED_APPS``\n\n* Add ``django_auth0.auth_backend.Auth0Backend`` to ``AUTHENTICATION_BACKENDS``\n\n.. code-block::python\n\n    AUTHENTICATION_BACKENDS = [\n        \"django_auth0.auth_backend.Auth0Backend\",\n        \"django.contrib.auth.backends.ModelBackend\"\n    ]\n\n* Add ``django_auth0.context_processors.auth0`` to ``CONTEXT_PROCESSORS`` so necessary template context will be provided\n\n* Include callback urls\n\n.. code-block::python\n\n    urlpatterns = [\n        ...\n        url(r'^auth/', include('django_auth0.urls')),\n    )\n\nUpdate ``AUTH0_CALLBACK_URL`` in ``settings.py`` to the following if want to use default authentication handler\n\n.. code-block::python\n    AUTH0_CALLBACK_URL = 'http://YOUR_DOMAIN/auth/auth_callback'\n\n\n* Add Auth0 client side JavaScript and initialize it\n\n.. code-block::python\n\n    \u003cscript src=\"https://cdn.auth0.com/js/lock-X.Y.min.js\"\u003e\u003c/script\u003e\n    \u003cscript\u003e\n      var lock = new Auth0Lock('{{ AUTH0_CLIENT_ID }}', '{{ AUTH0_DOMAIN }}');\n\n\n      lock.show({\n          icon: 'ICON_URL',\n          container: 'CONTAINER_ELEMENT',\n          callbackURL: 'YOUR_FULL_CALLBACK_URL',\n          responseType: 'code',\n          authParams: {\n              scope: 'openid profile'\n          }\n      });\n    \u003c/script\u003e\n\nOptions:\n\n1. ``AUTH0_CLIENT_ID`` - Auth0 client app id,\n2. ``AUTH0_SECRET`` - Auth0 app secret,\n3. ``AUTH0_DOMAIN`` - Auth0 subdomain ``YOU_APP.auth0.com``.\n4. ``AUTH0_CALLBACK_URL`` - Auth0 callback url is full url to your callback view like ``https://YOUR_DOMAIN/CALLBACK``\n5. ``AUTH0_SUCCESS_URL`` - Url to redirect once you login successfully\n\nOverriding callback view\nDefault callback view looks like this so you can always write your own and\nset ``AUTH0_CALLBACK_URL`` to your custom view it should be url name.\n\n.. code-block::python\n\n    def process_login(request):\n        \"\"\"\n        Default handler to login user\n        :param request: HttpRequest\n        \"\"\"\n        code = request.GET.get('code', '')\n        json_header = {'content-type': 'application/json'}\n        token_url = 'https://%s/oauth/token' % settings.AUTH0_DOMAIN\n\n        token_payload = {\n            'client_id': settings.AUTH0_CLIENT_ID,\n            'client_secret': settings.AUTH0_SECRET,\n            'redirect_uri': reverse(settings.AUTH0_CALLBACK_URL),\n            'code': code,\n            'grant_type': 'authorization_code'\n        }\n\n        token_info = requests.post(token_url,\n                                   data=json.dumps(token_payload),\n                                   headers=json_header).json()\n\n        url = 'https://%s/userinfo?access_token=%s'\n        user_url = url % (settings.AUTH0_DOMAIN, token_info['access_token'])\n        user_info = requests.get(user_url).json()\n\n        # We're saving all user information into the session\n        request.session['profile'] = user_info\n        user = authenticate(**user_info)\n\n        if user:\n            login(request, user)\n            return redirect(settings.AUTH0_SUCCESS_URL)\n\n        return HttpResponse(status=400)\n\n\n`Sample application`_ is at https://github.com/imanhodjaev/auth0-sample\n\nTODO\n--------\n\n* Improve tests,\n* Add Auth0 user profile model,\n* Add support for settings from Auth0,\n* Move string literals to configuration file\n\nRunning Tests\n--------------\n\nDoes the code actually work?\n\n::\n\n    source \u003cYOURVIRTUALENV\u003e/bin/activate\n    (myenv) $ pip install -r requirements-test.txt\n    (myenv) $ python runtests.py\n\nCredits\n---------\n\nTools used in rendering this package:\n\n*  Cookiecutter_\n*  `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n.. _`Sample application`: https://github.com/imanhodjaev/auth0-sample\n.. _`Regular Python application`: https://auth0.com/docs/quickstart/webapp/python/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsultaniman%2Fdjango-auth0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsultaniman%2Fdjango-auth0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsultaniman%2Fdjango-auth0/lists"}