{"id":21919448,"url":"https://github.com/dlrsp/django-sp","last_synced_at":"2026-07-07T13:00:18.867Z","repository":{"id":3314983,"uuid":"48965017","full_name":"DLRSP/django-sp","owner":"DLRSP","description":"Django application for social authentication and other security integrations.","archived":false,"fork":false,"pushed_at":"2026-06-27T17:18:18.000Z","size":4616,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-27T17:20:52.697Z","etag":null,"topics":["2fa","django","pyhton","security","sessions","social-login"],"latest_commit_sha":null,"homepage":"https://dlrsp.github.io/django-sp/","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/DLRSP.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-01-03T23:49:13.000Z","updated_at":"2026-06-27T16:54:31.000Z","dependencies_parsed_at":"2023-09-22T17:22:42.576Z","dependency_job_id":"6211cf55-b9e2-45af-a3ef-a4a240c269fe","html_url":"https://github.com/DLRSP/django-sp","commit_stats":{"total_commits":130,"total_committers":2,"mean_commits":65.0,"dds":0.01538461538461533,"last_synced_commit":"4b4223dd52421b6797b597b347615c06c93d1356"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/DLRSP/django-sp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DLRSP%2Fdjango-sp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DLRSP%2Fdjango-sp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DLRSP%2Fdjango-sp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DLRSP%2Fdjango-sp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DLRSP","download_url":"https://codeload.github.com/DLRSP/django-sp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DLRSP%2Fdjango-sp/sbom","scorecard":{"id":35474,"data":{"date":"2025-08-11","repo":{"name":"github.com/DLRSP/django-sp","commit":"3af340e043f2ab53ebde7a82e6f17921f5254c20"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.5,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"12 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/docs.yml:1","Warn: no topLevel permission defined: .github/workflows/pr-rebase-on-push.yaml:1","Warn: no topLevel permission defined: .github/workflows/upgrade-dependency.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/DLRSP/django-sp/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/DLRSP/django-sp/docs.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr-rebase-on-push.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/DLRSP/django-sp/pr-rebase-on-push.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/upgrade-dependency.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/DLRSP/django-sp/upgrade-dependency.yaml/main?enable=pin","Info:   0 out of   4 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.23.3 not signed: https://api.github.com/repos/DLRSP/django-sp/releases/193184461","Warn: release artifact v1.23.2 not signed: https://api.github.com/repos/DLRSP/django-sp/releases/193183965","Warn: release artifact v1.23.1 not signed: https://api.github.com/repos/DLRSP/django-sp/releases/193181628","Warn: release artifact v1.23.0 not signed: https://api.github.com/repos/DLRSP/django-sp/releases/193184091","Warn: release artifact v1.23.3 does not have provenance: https://api.github.com/repos/DLRSP/django-sp/releases/193184461","Warn: release artifact v1.23.2 does not have provenance: https://api.github.com/repos/DLRSP/django-sp/releases/193183965","Warn: release artifact v1.23.1 does not have provenance: https://api.github.com/repos/DLRSP/django-sp/releases/193181628","Warn: release artifact v1.23.0 does not have provenance: https://api.github.com/repos/DLRSP/django-sp/releases/193184091"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T20:11:53.877Z","repository_id":3314983,"created_at":"2025-08-14T20:11:53.877Z","updated_at":"2025-08-14T20:11:53.877Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35228616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-07T02:00:07.222Z","response_time":90,"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":["2fa","django","pyhton","security","sessions","social-login"],"created_at":"2024-11-28T20:07:58.315Z","updated_at":"2026-07-07T13:00:18.824Z","avatar_url":"https://github.com/DLRSP.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# django-sp [![PyPi license](https://img.shields.io/pypi/l/django-sp.svg)](https://pypi.python.org/pypi/django_sp)\n\n## Pypi [![PyPi status](https://img.shields.io/pypi/status/django-sp.svg)](https://pypi.python.org/pypi/django_ps) [![PyPi version](https://img.shields.io/pypi/v/django-sp.svg)](https://pypi.python.org/pypi/django_sp) [![PyPi python version](https://img.shields.io/pypi/pyversions/django-sp.svg)](https://pypi.python.org/pypi/django_sp) [![PyPi downloads](https://img.shields.io/pypi/dm/django-sp.svg)](https://pypi.python.org/pypi/django_sp) [![PyPi downloads](https://img.shields.io/pypi/dw/django-sp.svg)](https://pypi.python.org/pypi/django_sp) [![PyPi downloads](https://img.shields.io/pypi/dd/django-sp.svg)](https://pypi.python.org/pypi/django_sp)\n\n\t$ pip install django-sp\n\n## GitHub ![GitHub release](https://img.shields.io/github/tag/DLRSP/django-sp.svg) ![GitHub release](https://img.shields.io/github/release/DLRSP/django-sp.svg)\n\n## Test [![codecov.io](https://codecov.io/github/DLRSP/django-sp/coverage.svg?branch=main)](https://codecov.io/github/DLRSP/django-sp?branch=main)\n\nReport Issues with [***waffle.io***](https://waffle.io/DLRSP/django-sp/join)\n\n## Run Example Project\n\n\t$ git clone https://github.com/DLRSP/example -b django-sp\n\t$ cd example\n\t$ python manage.py runserver\n\nNow you browser the app @ http://127.0.0.1:8000\n\n\nfrom django.contrib.auth import get_user_model\nUser = get_user_model()\nuser = User.objects.get(username=\"dlrsp.dev\")\nuser.is_staff = True\nuser.is_admin = True\nuser.is_superuser = True\nuser.save()\n\n\n# Get current user model from settings\nfrom django.contrib.auth import get_user_model\nUser = get_user_model()\nuser = User.objects.create_user('myemail@crazymail.com', 'mypassword')\nuser.first_name = 'Tyrone'\nuser.last_name = 'Citizen'\nuser.save()\n\nfrom django.contrib.auth import get_user_model\nUser = get_user_model()\nuser = User.objects.create_user('myemail@crazymail.com', 'mypassword', 'myemail')\nuser.first_name = 'Tyrone'\nuser.last_name = 'Citizen'\nuser.save()\n\n\n# Error\nERROR 2023-12-29 13:19:35,275 log 1728326 139722162782720 Internal Server Error: /it/sp/complete/google-oauth2/\nTraceback (most recent call last):\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/django/core/handlers/exception.py\", line 55, in inner\n    response = get_response(request)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/django/core/handlers/base.py\", line 197, in _get_response\n    response = wrapped_callback(request, *callback_args, **callback_kwargs)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/django/views/decorators/cache.py\", line 62, in _wrapper_view_func\n    response = view_func(request, *args, **kwargs)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/django/views/decorators/csrf.py\", line 56, in wrapper_view\n    return view_func(*args, **kwargs)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/social_django/utils.py\", line 49, in wrapper\n    return func(request, backend, *args, **kwargs)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/social_django/views.py\", line 31, in complete\n    return do_complete(\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/social_core/actions.py\", line 49, in do_complete\n    user = backend.complete(user=user, *args, **kwargs)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/social_core/backends/base.py\", line 39, in complete\n    return self.auth_complete(*args, **kwargs)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/social_core/utils.py\", line 253, in wrapper\n    return func(*args, **kwargs)\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/social_core/backends/oauth.py\", line 408, in auth_complete\n    state = self.validate_state()\n  File \"/srv/https/horoscopus/venv/lib64/python3.9/site-packages/social_core/backends/oauth.py\", line 98, in validate_state\n    raise AuthStateMissing(self, \"state\")\nsocial_core.exceptions.AuthStateMissing: Session value state missing.\n[pid: 1728326|app: 0|req: 2/7] 101.58.43.45 () {58 vars in 2160 bytes} [Fri Dec 29 13:19:34 2023] GET /it/sp/complete/google-oauth2/?state=Kj9FhLkpwVsqBWUkgy3q39RHHNGc4VwQ\u0026code=4%2F0AfJohXn_cVSNiHzqdSvVNFQuNFQfLIqVgevVI_nBnxJr-EgCjQaHURyzbrnbKT6agmlPEg\u0026scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid\u0026authuser=0\u0026prompt=none =\u003e generated 14583 bytes in 489667 micros (HTTP/2.0 500) 9 headers in 434 bytes (1 switches on core 0)\n[pid: 1728327|app: 0|req: 5/8] 101.58.43.45 () {54 vars in 1672 bytes} [Fri Dec 29 13:19:35 2023] GET /it/jsi18n/ =\u003e generated 8405 bytes in 2761 micros (HTTP/2.0 200) 10 headers in 335 bytes (1 switches on core 0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlrsp%2Fdjango-sp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlrsp%2Fdjango-sp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlrsp%2Fdjango-sp/lists"}