{"id":15024444,"url":"https://github.com/blueshoe/django-secure-passwords","last_synced_at":"2025-07-17T21:39:46.602Z","repository":{"id":48635735,"uuid":"350750104","full_name":"Blueshoe/django-secure-passwords","owner":"Blueshoe","description":"Enterprise-grade django password management :key:","archived":false,"fork":false,"pushed_at":"2021-07-16T15:37:02.000Z","size":127,"stargazers_count":8,"open_issues_count":8,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-22T21:42:30.348Z","etag":null,"topics":["authentication","django","enterprise","password","python","security"],"latest_commit_sha":null,"homepage":"","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/Blueshoe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-23T14:49:38.000Z","updated_at":"2024-01-19T10:28:07.000Z","dependencies_parsed_at":"2022-09-15T21:02:47.843Z","dependency_job_id":null,"html_url":"https://github.com/Blueshoe/django-secure-passwords","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Blueshoe/django-secure-passwords","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blueshoe%2Fdjango-secure-passwords","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blueshoe%2Fdjango-secure-passwords/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blueshoe%2Fdjango-secure-passwords/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blueshoe%2Fdjango-secure-passwords/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Blueshoe","download_url":"https://codeload.github.com/Blueshoe/django-secure-passwords/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blueshoe%2Fdjango-secure-passwords/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265663428,"owners_count":23807468,"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":["authentication","django","enterprise","password","python","security"],"created_at":"2024-09-24T20:00:22.015Z","updated_at":"2025-07-17T21:39:46.583Z","avatar_url":"https://github.com/Blueshoe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![django-secure-passwords logo](https://github.com/Blueshoe/django-secure-passwords/raw/master/docs/_static/img/logo.png)\n\n--------------------------------------------------------------------------------\n![Build Status](https://github.com/Blueshoe/django-secure-passwords/actions/workflows/python-app.yml/badge.svg)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Blueshoe_django-secure-passwords\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=Blueshoe_django-secure-passwords)\n[![Coverage Status](https://coveralls.io/repos/github/Blueshoe/django-secure-passwords/badge.svg?branch=master)](https://coveralls.io/github/Blueshoe/django-secure-passwords?branch=master)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\n**Todo**\n\n\n## Installation\n\ndjango-secure-passwords is currently available only on Blueshoe's Python Package Index.\n```bash\npip3 install django-secure-passwords\n```\n\nAdd *\"django-secure-passwords\"* to your *INSTALLED_APPS*: \n```python\nINSTALLED_APPS = [\n    \"...\",\n    \"securepasswords\",\n]\n```\n\n\n\n## Tracking of login attempts and account blocking\nTo track login attempts and lock account after a number of unsuccessful attempts use \n[django-axes](https://github.com/jazzband/django-axes/) package. It can log successful and unsuccessful attempts, saving \nthis information to the database. The record consists of time of login, IP address, user \nagent, username, path to which the login was attempted and the number of failed attempts.\n\nTo install this package, run:\n```bash\npip3 install django-axes\n```\n\nThen, according to the [installation guide](https://django-axes.readthedocs.io/en/latest/2_installation.html) you need\nto add these settings to your settings.py file:\n\n```python\nINSTALLED_APPS = [\n    '...',\n    # Axes app can be in any position in the INSTALLED_APPS list.\n    'axes',\n]\n```\n\n```python\nAUTHENTICATION_BACKENDS = [\n    # AxesBackend should be the first backend in the AUTHENTICATION_BACKENDS list.\n    'axes.backends.AxesBackend',\n    '...',\n]\n```\n\n```python\nMIDDLEWARE = [\n    # The following is the list of default middleware in new Django projects.\n    '...',\n    # AxesMiddleware should be the last middleware in the MIDDLEWARE list.\n    # It only formats user lockout messages and renders Axes lockout responses\n    # on failed user authentication attempts from login views.\n    # If you do not want Axes to override the authentication response\n    # you can skip installing the middleware and use your own views.\n    'axes.middleware.AxesMiddleware',\n]\n```\n\nDifferent [configuration variables](https://django-axes.readthedocs.io/en/latest/4_configuration.html) are available, \nthose variables can be directly added to the settings.py file.\n\n## Usage\n\n# TODO prettify\nRecommended: usage of `AbstractBaseUser` subclass as `AUTH_USER_MODEL`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueshoe%2Fdjango-secure-passwords","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblueshoe%2Fdjango-secure-passwords","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueshoe%2Fdjango-secure-passwords/lists"}