A Django package for account and authentication managment
Project description
django-ai-kit-auth bundles everything authentication related and is meant to work seamlessly with the ai-kit-auth react component.
It provides routes for login, password validation, password reset, registration and account verification.
It includes a services to trigger the account validation and other functionality. It works with the standard django and with a custom user model as long as its provides an email address.
Standard Django sessions are used for authentification.
Quick Start
1.) Add ai_kit_auth to your INSTALLED_APPS like so:
INSTALLED_APPS = ( # ... "rest_framework", # ... "ai_kit_auth", # ... "corsheaders", )
rest_framework from the pip package djangorestframework and corsheaders from the pip package django-cors-headers are dependencies and must be installed.
2.) Configuration is namespaced unter AI_KIT_AUTH like so:
AI_KIT_AUTH = { "FRONTEND": { "URL": "example.com", }, # ... }
Note that FRONTEND.URL is a required configuration that does not have a default. Default configurations are:
DEFAULTS = { # Templates for all the email notifications to the user "EMAIL_TEMPLATES": { # is send when the user is created by registration "USER_CREATED": { "TITLE": "ai_kit_auth/user_created_title.txt", "BODY_PLAINTEXT": "ai_kit_auth/user_created_body.txt", "BODY_HTML": "ai_kit_auth/user_created_body.html", }, # is send to the user after they triggered the forget password # feature. Contains the time limited password reset link "RESET_PASSWORD": { "TITLE": "ai_kit_auth/reset_password_title.txt", "BODY_PLAINTEXT": "ai_kit_auth/reset_password_body.txt", "BODY_HTML": "ai_kit_auth/reset_password_body.html", }, }, # If true, the user has to specify a username in addition to the # mail address "USERNAME_REQUIRED": False, # information about the frontend, mostly the used routes. In most cases # the defaults are fine, but can be changed for localisation of the # urls. # Only the actual frontend url is unset and you will get an # configuration error if you don't specify it. "FRONTEND": { "URL": "", "ACTIVATION_ROUTE": "/auth/activation/", "RESET_PW_ROUTE": "/auth/reset_password/", }, }
In addition to that some general configuration is required:
CORS_ORIGIN_WHITELIST = [ "http://localhost:8000", "http://localhost:3000", # add other front-end backend urls ] CORS_ALLOW_CREDENTIALS = True CSRF_USE_SESSIONS = True CSRF_TRUSTED_ORIGINS = [ "http://localhost:8000", "http://localhost:3000", # add other front-end backend urls ]
The CSRF_USE_SESSIONS configuration doesn’t need to be set to enable Ai-Kit-Auth, but in prevents problems with double logins, for example if a user is logged into the Admin interface and also logged in the frontend. Django saves CSRF tokens in cookies by default.
Also see the django-cors-headers for details.
3.) Include the routes in your urls.py:
urlpatterns = [ # ... re_path("^api/v1/", include("ai_kit_auth.urls")) # ... ]
4.) Run python manage.py migrate. Only required if you add the dependencies to your project since this package does not define models on its own.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_ai_kit_auth-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee173f142219833a56935efd4a879b438d3b3bcc0b5120c995538fab3aaed203 |
|
MD5 | c89c2e17836d8d7724ca52d9a459f85a |
|
BLAKE2b-256 | 60f49958abed384ad5ab1a6d0ee7aebfbffd5dfc1e891a99decfc03a0e23fb1a |