User registration base on Django Rest Framework
Project description
Django Rest Framework Registration
User registration base on Django Rest Framework.
Check the document at https://drf-registration.readthedocs.io/
Requirements
- Django (>=2.0)
- Django REST Framework (>=3.8.2)
- Python (>=3.6)
Features
- Register
- Verify/activate account by token sent to email
- Login use token
- Logout
- User profile
- Change password
- Reset password
Future Features
- Login by socials (Facebook, Google)
- Set password when login by social
- Sync user account with socials
- HTML email configuration
- Test coverage (98%)
Base APIs Design
Assuming that base resource is /api/v1/accounts/
Regsiter
POST: /register/
Register new user
Verify account
POST: /verify/
Verify account by email
Login
POST: /login/
Login to the system use username/email and password
Logout
POST: /logout/
Logout of the system
Profile
GET: /profile/
Get user profile
PUT: /profile/
Update user profile
Change password
PUT: /change-password/
Change user password
Set password
PUT: /set-password/
Set user password when login with social account
Installing
- Add
drf_registration
inINSTALLED_APPS
INSTALLED_APPS = [
...
'rest_framework',
'rest_framework.authtoken',
'drf_registration',
...
]
- Include urls of
drf_registration
inurls.py
urlpatterns = [
...
path('/api/accounts/', include('drf_registration.urls')),
...
]
Settings
- Set
AUTHENTICATION_BACKEND
for support login by multiple custom fields and check inactivate user when login:
AUTHENTICATION_BACKENDS = [
'drf_registration.auth.MultiFieldsModelBackend',
]
You can update login username fields by change LOGIN_USERNAME_FIELDS
in DRF_REGISTRATION
object. Default to ['username, email,]
.
- Set
DEFAULT_AUTHENTICATION_CLASSES
inREST_FRAMEWORK
configuration
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
}
Design settings
DRF_REGISTRATION = {
}
Command line
- Unit Test
make test
You can add ARGS="specific_folder/"
or ARGS="specific_file.py"
to run specific test cases.
- Run pylint
make pylint
- Build & run docs local server
make docs
Access docs server at http://localhost:8080
- Clean
make clean
Test coverage
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.