User registration REST API, based on django-rest-framework
Project description
User registration REST API, based on django-rest-framework.
WARNING: django-rest-registration is only Python 3 compatible.
Features
Supported views:
registration (sign-up) with verification
login/logout (sign-in), session- or token-based
user profile (retrieving / updating)
reset password
change password
register (change) e-mail
Views are compatible with django-rest-swagger
Views can be authenticated via session or auth token
Modeless (uses the user defined by settings.AUTH_USER_MODEL and also uses cryptographic signing instead of profile models)
Uses password validation
Heavily tested (Above 99% code coverage)
Current limitations
Supports only one email per user (as model field)
Heavily based on Django (1.10+, 2.0+) an Django-REST-Framework (3.3+)
Python3 only
No JWT support
Installation
You can install django-rest-registration lastest version via pip:
pip install django-rest-registration
Or install directly from source via GitHub:
pip install git+https://github.com/szopu/django-rest-registration
Then, you should add it to the INSTALLED_APPS so the app templates for notification emails can be accessed:
INSTALLED_APPS=( ... 'rest_registration', ),
After that, you can use the urls in your urlconfig, for instance (using new Django 2.x syntax):
api_urlpatterns = [ ... path('accounts/', include('rest_registration.api.urls')), ] urlpatterns = [ ... path('api/v1/', include(api_urlpatterns)), ]
In Django 1.x you can use old url instead of path.
Configuration
You can configure django-rest-registraton using the REST_REGISTRATION setting in your django settings (similarly to django-rest-framework).
Below is sample, minimal config you can provide in your django settings which will satisfy the system checks:
REST_REGISTRATION = { 'REGISTER_VERIFICATION_ENABLED': False, 'RESET_PASSWORD_VERIFICATION_URL': '/reset-password/', 'REGISTER_EMAIL_VERIFICATION_ENABLED': False, 'VERIFICATION_FROM_EMAIL': 'no-reply@example.com', }
The default values are:
REST_REGISTRATION = { 'USER_LOGIN_FIELDS': None, 'USER_HIDDEN_FIELDS': ( 'is_active', 'is_staff', 'is_superuser', 'user_permissions', 'groups', 'date_joined', ), 'USER_PUBLIC_FIELDS': None, 'USER_EMAIL_FIELD': 'email', 'USER_VERIFICATION_FLAG_FIELD': 'is_active', 'REGISTER_SERIALIZER_CLASS': 'rest_registration.api.serializers.DefaultRegisterUserSerializer', 'REGISTER_SERIALIZER_PASSWORD_CONFIRM': True, 'REGISTER_VERIFICATION_ENABLED': True, 'REGISTER_VERIFICATION_PERIOD': datetime.timedelta(days=7), 'REGISTER_VERIFICATION_URL': None, 'REGISTER_VERIFICATION_EMAIL_TEMPLATES': { 'subject': 'rest_registration/register/subject.txt', 'body': 'rest_registration/register/body.txt', }, 'LOGIN_AUTHENTICATE_SESSION': None, 'LOGIN_RETRIEVE_TOKEN': None, 'RESET_PASSWORD_VERIFICATION_PERIOD': datetime.timedelta(days=1), 'RESET_PASSWORD_VERIFICATION_URL': None, 'RESET_PASSWORD_VERIFICATION_EMAIL_TEMPLATES': { 'subject': 'rest_registration/reset_password/subject.txt', 'body': 'rest_registration/reset_password/body.txt', }, 'REGISTER_EMAIL_VERIFICATION_ENABLED': True, 'REGISTER_EMAIL_VERIFICATION_PERIOD': datetime.timedelta(days=7), 'REGISTER_EMAIL_VERIFICATION_URL': None, 'REGISTER_EMAIL_VERIFICATION_EMAIL_TEMPLATES': { 'subject': 'rest_registration/register_email/subject.txt', 'body': 'rest_registration/register_email/body.txt', }, 'PROFILE_SERIALIZER_CLASS': 'rest_registration.api.serializers.DefaultUserProfileSerializer', 'VERIFICATION_FROM_EMAIL': None, 'VERIFICATION_REPLY_TO_EMAIL': None, 'SUCCESS_RESPONSE_BUILDER': 'rest_registration.utils.build_default_success_response', }
The USER_* fields can be set directly in the user class (specified by settings.AUTH_USER_MODEL) without using the USER_ prefix (EMAIL_FIELD, etc.). These settings will override these provided in settings.REST_REGISTRATION.
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
Hashes for django-rest-registration-0.3.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba7d8c24fa20307f392d0a5fa9eb1c621d32d72111fb0b94edfcc33950760f7a |
|
MD5 | 1588b832622225b29eb2f075e6ef5e28 |
|
BLAKE2b-256 | 7104d160b5fb696f493af56d6ed785cb607bb6731fd0f69a95aa60177f92e48a |