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_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
File details
Details for the file django-rest-registration-0.3.4.tar.gz.
File metadata
- Download URL: django-rest-registration-0.3.4.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6857ee84ca2816c47e9aa71fdeeab58a43bbc55584cf3c93abad074d8a57c8b6
|
|
| MD5 |
acc93c2dcccaff7cd0f81ba6e9a252da
|
|
| BLAKE2b-256 |
3bba5fbe6129bee81bb61bd1d036b7fd0457eb7f40f76750a374ad82c4675b97
|