BaseApp Auth
Project description
BaseApp Auth
Usage
This project provides the default User model and authentication utilities.
Abstract user model
AbstractUser
is an abstract Django user model implementation. It provides a default implementation of User
model and can be extended in the target Django app. The attached test project contains a concrete implementation of User class for demo purposes.
Authentication endpoints
In rest_framework
directory you can find a implementation of authentication-related endpoints: login, signup, forgot-passowrd, change-email. The attached test project has DRF routing set up to test/demo JWT authentication and Multi-factor authentication (MFA).
README.md
Utilities
How to use
There is a standalon demo project with a complete demo setup.
Installation
Add to requirements of yor project (replacing everything inside brackets):
baseapp-auth @ git+https://github.com/silverlogic/baseapp-backend.git@v0.1#subdirectory=baseapp-auth
Settings
Add the app to your project INSTALLED_APPS:
INSTALLED_APPS = [
...
"baseapp_auth",
]
Set the Django auth user model to the concrete model of your app:
AUTH_USER_MODEL = "testapp.User"
If you want to use JWT authentication, add the corresponding authentication backend:
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework_simplejwt.authentication.JWTAuthentication",
# ...
)
}
and set the required SIMPLE_JWT
settings (e.g. the claims serializer):
SIMPLE_JWT = {
# It will work instead of the default serializer(TokenObtainPairSerializer).
"TOKEN_OBTAIN_SERIALIZER": "testproject.testapp.rest_framework.jwt.serializers.MyTokenObtainPairSerializer",
# ...
}
There is a constance config for password expiration interval:
CONSTANCE_CONFIG = OrderedDict(
[
(
"USER_PASSWORD_EXPIRATION_INTERVAL",
(
365 * 2,
"The time interval (in days) after which a user will need to reset their password.",
),
),
]
)
There is an optional scheduled task that can be configured for notifying that the user's password has expired:
CELERY_BEAT_SCHEDULE = {
"notify_is_password_expired": {
"task": "baseapp_auth.tasks.notify_users_is_password_expired",
"schedule": "...",
"options": "...",
},
}
How to delevop
General development instructions can be found in main README
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
File details
Details for the file baseapp-auth-0.1.0.tar.gz
.
File metadata
- Download URL: baseapp-auth-0.1.0.tar.gz
- Upload date:
- Size: 30.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcec0e812db2d4b58fe1b6efedfebd6908b900c1e6d8dbc132c8ed17f165e14a |
|
MD5 | 2d67658f6f6dd02f1be97644da580dae |
|
BLAKE2b-256 | e6cbd4b013d3b3935471d1fb2d0d4f7259f0d1c87f405ad2bc145fc7d4efa028 |