DjaoDjin-Signup
===============
[![PyPI version](https://badge.fury.io/py/djaodjin-signup.svg)](https://badge.fury.io/py/djaodjin-signup)
This repository contains a Django App for frictionless signup.
The app will register and login a user with as little as only an email address.
When the user logs out and tries to logs back in with the same email address,
the app will first verify the email address through an activation url send
to the registered email address. Setting the password is deferred to after
the email address has been verified.
If during the first login and/or subsequent login, the email address should
be verified before moving forward (ex: before presenting a payment view),
you should decorate the view with an *active_required* decorator.
This project contains bare bone templates which are compatible with Django
and Jinja2 template engines. To see djaodjin-signup in action as part
of a full-fledged subscription-based session proxy, take a look
at [djaoapp](https://github.com/djaodjin/djaoapp/).
Install
=======
Add the signup urls to your urlpatterns and EmailOrUsernameModelBackend
to the settings AUTHENTICATION_BACKENDS.
urls.py:
urlpatterns = ('',
(r'^api/', include('signup.urls.api')),
(r'^', include('signup.urls.views')),
)
settings.py:
AUTHENTICATION_BACKENDS = (
'signup.backends.auth.EmailOrUsernameModelBackend',
'django.contrib.auth.backends.ModelBackend'
)
Development
===========
After cloning the repository, create a virtualenv environment, install
the prerequisites, create and load initial data into the database, then
run the testsite webapp.
$ python -m venv .venv
$ source .venv/bin/activate
$ pip install -r testsite/requirements.txt
$ make vendor-assets-prerequisites
$ make initdb
$ python manage.py runserver
# Browse http://localhost:8000/
Release Notes
=============
Tested with
- **Python:** 3.7, **Django:** 3.2 ([LTS](https://www.djangoproject.com/download/))
- **Python:** 3.10, **Django:** 4.2 (latest) - see [#55](https://github.com/djaodjin/djaodjin-signup/issues/55)
- **Python:** 2.7, **Django:** 1.11 (legacy) - use testsite/requirements-legacy.txt
0.9.8
* fixes `TransactionManagementError` when duplicate candidate usernames
[previous release notes](changelog)
Raw data
{
"_id": null,
"home_page": null,
"name": "djaodjin-signup",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "The DjaoDjin Team <help@djaodjin.com>",
"keywords": "signup, authentication, frictionless, 2fa, mfa, otp, oauth, saml",
"author": null,
"author_email": "The DjaoDjin Team <help@djaodjin.com>",
"download_url": "https://files.pythonhosted.org/packages/af/b5/033a2a7530de0573ee41e1a579029ff08b009a953ef12dd2e3b4ff27956d/djaodjin_signup-0.9.8.tar.gz",
"platform": null,
"description": "DjaoDjin-Signup\n===============\n\n[![PyPI version](https://badge.fury.io/py/djaodjin-signup.svg)](https://badge.fury.io/py/djaodjin-signup)\n\nThis repository contains a Django App for frictionless signup.\n\nThe app will register and login a user with as little as only an email address.\n\nWhen the user logs out and tries to logs back in with the same email address,\nthe app will first verify the email address through an activation url send\nto the registered email address. Setting the password is deferred to after\nthe email address has been verified.\n\nIf during the first login and/or subsequent login, the email address should\nbe verified before moving forward (ex: before presenting a payment view),\nyou should decorate the view with an *active_required* decorator.\n\nThis project contains bare bone templates which are compatible with Django\nand Jinja2 template engines. To see djaodjin-signup in action as part\nof a full-fledged subscription-based session proxy, take a look\nat [djaoapp](https://github.com/djaodjin/djaoapp/).\n\n\nInstall\n=======\n\nAdd the signup urls to your urlpatterns and EmailOrUsernameModelBackend\nto the settings AUTHENTICATION_BACKENDS.\n\n urls.py:\n\n urlpatterns = ('',\n (r'^api/', include('signup.urls.api')),\n (r'^', include('signup.urls.views')),\n\n )\n\n settings.py:\n\n AUTHENTICATION_BACKENDS = (\n 'signup.backends.auth.EmailOrUsernameModelBackend',\n 'django.contrib.auth.backends.ModelBackend'\n\n )\n\nDevelopment\n===========\n\nAfter cloning the repository, create a virtualenv environment, install\nthe prerequisites, create and load initial data into the database, then\nrun the testsite webapp.\n\n $ python -m venv .venv\n $ source .venv/bin/activate\n $ pip install -r testsite/requirements.txt\n $ make vendor-assets-prerequisites\n $ make initdb\n $ python manage.py runserver\n\n # Browse http://localhost:8000/\n\nRelease Notes\n=============\n\nTested with\n\n- **Python:** 3.7, **Django:** 3.2 ([LTS](https://www.djangoproject.com/download/))\n- **Python:** 3.10, **Django:** 4.2 (latest) - see [#55](https://github.com/djaodjin/djaodjin-signup/issues/55)\n- **Python:** 2.7, **Django:** 1.11 (legacy) - use testsite/requirements-legacy.txt\n\n0.9.8\n\n * fixes `TransactionManagementError` when duplicate candidate usernames\n\n[previous release notes](changelog)\n",
"bugtrack_url": null,
"license": "BSD-2-Clause",
"summary": "Django app for user authentication",
"version": "0.9.8",
"project_urls": {
"changelog": "https://github.com/djaodjin/djaodjin-signup/changelog",
"documentation": "https://djaodjin-signup.readthedocs.io/",
"repository": "https://github.com/djaodjin/djaodjin-signup"
},
"split_keywords": [
"signup",
" authentication",
" frictionless",
" 2fa",
" mfa",
" otp",
" oauth",
" saml"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "94cacf7c7b586f80b07dd70f3799a220c8eccd7a124f75d502ff0a235d14c59d",
"md5": "97364ea2a0ae529d85df610375bc44ad",
"sha256": "89eb5cff4cca050f8642391c448c9b66a1b21fac354a695f8fe6540f24820106"
},
"downloads": -1,
"filename": "djaodjin_signup-0.9.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "97364ea2a0ae529d85df610375bc44ad",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 163315,
"upload_time": "2024-08-20T18:54:18",
"upload_time_iso_8601": "2024-08-20T18:54:18.769636Z",
"url": "https://files.pythonhosted.org/packages/94/ca/cf7c7b586f80b07dd70f3799a220c8eccd7a124f75d502ff0a235d14c59d/djaodjin_signup-0.9.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "afb5033a2a7530de0573ee41e1a579029ff08b009a953ef12dd2e3b4ff27956d",
"md5": "9dd33c4c26964e292408c91a8b40f714",
"sha256": "02a5f9c4fa724bdbf388cd8a54e85e72e961b62d8c47c8b4c58f3376982d11ec"
},
"downloads": -1,
"filename": "djaodjin_signup-0.9.8.tar.gz",
"has_sig": false,
"md5_digest": "9dd33c4c26964e292408c91a8b40f714",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 101122,
"upload_time": "2024-08-20T18:54:21",
"upload_time_iso_8601": "2024-08-20T18:54:21.878268Z",
"url": "https://files.pythonhosted.org/packages/af/b5/033a2a7530de0573ee41e1a579029ff08b009a953ef12dd2e3b4ff27956d/djaodjin_signup-0.9.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-20 18:54:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "djaodjin",
"github_project": "djaodjin-signup",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "djaodjin-signup"
}