Skip to main content

Simple user registration package based on Django Rest Framework. DRF Registration - The easy way to generate registration RESTful APIs.

Project description

DRF Registration

Downloads

Simple user registration package based on Django Rest Framework. DRF Registration - The easy way to generate registration RESTful APIs.

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
  • Login by socials (Facebook, Google)
  • Set password when login by social
  • Sync user account with socials
  • HTML email configuration
  • Test coverage (98%)

Installation & Configuration

Install by use pip:

pip install drf-registration

Add drf_registration in INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'rest_framework',
    'rest_framework.authtoken',
    'drf_registration',
    ...
]

Include urls of drf_registration in urls.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 in REST_FRAMEWORK configuration
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}

Design settings

DRF_REGISTRATION = {

}

Check default settings here.

Base APIs Design

Assuming that base resource is /api/v1/accounts/

  • POST: /register/: Register new user
  • POST: /verify/: Verify account by email
  • POST: /login/: Login to the system use username/email and password
  • POST: /logout/: Logout of the system
  • GET: /profile/: Get user profile
  • PUT: /profile/: Update user profile
  • PUT: /change-password/: Change user password
  • PUT: /set-password/: Set user password when login with social account

Check more APIs Design at here.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drf-registration-0.1.3.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

drf_registration-0.1.3-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file drf-registration-0.1.3.tar.gz.

File metadata

  • Download URL: drf-registration-0.1.3.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for drf-registration-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7299032b2f7aeecd2c48642db6107ba1021ba8c0d3d1f33b9e35c632ccc9ac0f
MD5 0f156b07cbc8a483efba937708a8b12f
BLAKE2b-256 1868af06e9553e6b59f11a7601aca563e0db4338dd1ab6d1769943506e6b70e6

See more details on using hashes here.

File details

Details for the file drf_registration-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: drf_registration-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for drf_registration-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bf7b7e39733880700f5d8eb3db7404eb6aabe3cb94b700ddd4e61ef168bfcfe4
MD5 9c835801eebadb70cf998641268b0dbc
BLAKE2b-256 3d3578c0469dee99cf5f9c399ca08adbe4cb0f7b3a214d1f7329d7445f6f5581

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page