DRF Registration

Django: Tạo API nhanh chóng với DRF Registration

Table of Content

DRF Registration là một package mình viết vào một ngày không đẹp trời lắm giữa lúc Đà Nẵng trở thành ổ dịch Covid lớn nhất cả nước. Đây là một package sử dụng Django Rest Framework để tạo ra những registration APIs một cách đơn giản và nhanh nhất. Và hôm nay “nhân dịp” Covid trở lại Việt Nam thì mình viết giới thiệu những chức năng của package này.

Trên cộng đồng cũng có một số package làm về chủ đề này. Hoặc là quá nhiều chức năng, hoặc là quá khó để sử dụng, hoặc là quá sơ sài. Với nhu cầu cá nhân thì mình phát triển DRF Registration. Package này vẫn còn nhiều thứ để cải thiện, nếu được các bạn có thể góp ý, yêu cầu thêm chức năng hoặc đóng góp trên GitHub.

Thông tin

Chức năng

Dưới đây là một số APIs, chức năng của package này.

  • Register
  • Activate account bằng token gởi tới email
  • Login
  • Logout
  • User Profile
  • Change Password
  • Reset Password
  • Social Login (Facebook, Google)
  • Set password khi sử dụng social login
  • Đồng bộ account thường với socials
  • Dễ dàng custom email configs, templates
  • Configs đơn giản, dễ dàng
  • Có thể dùng những classes, functions của package như những utils/helpers
  • Và nhiều chức năng khác

Cài đặt

Yêu cầu

  • Python (>=3.6)
  • Django (>=2)
  • Django Rest Framework (>=3.8.2)

Installation

pip install drf_registration

Settings

INSTALLED_APPS

Package này sử dung Django Rest FrameworkAuthToken nên bạn phải chắc chắn đã thêm vào trong INSTALLED_APPS

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

AUTH_USER_MODEL

Yêu cầu bạn phải có User model trước, có thể sử dụng mặc định của Django.

AUTH_USER_MODEL = 'accounts.User' # Bạn có thể thay đổi User mode khác

urls.py

urlpatterns = [
    ...
    path('/api/accounts/', include('drf_registration.urls')),
    ...
]

AUTHENTICATION_BACKEND

Hỗ trợ multiple username fields khi login.

AUTHENTICATION_BACKENDS = [
    'drf_registration.auth.MultiFieldsModelBackend',
]

DEFAULT_AUTHENTICATION_CLASSES

Sử dụng TokenAuthentication.

REST_FRAMEWORK = {
    ...
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
    ...
}

DRF Registration Settings

Hiện tại package này hỗ trợ custom nhiều giá trị default:

  • Email
  • User
  • Register
  • Login
  • Profile
  • Change Password
  • Reset Password
  • Set Password
  • Social Login

Bạn có thể tìm hiểu thêm tại đây

Chạy thử nào

Sau các bước cài đặt cơ bản của DRF Registration thì bắt đầu chạy thử để xem kết quả.

python manage.py runserver

Mình dùng Swagger cho API document, sau khi access vào http://localhost:8000/docs/ bạn có thể kiểm tra tất cả API của DRF Registration. Dưới đây là một số ví dụ.

Django: Tạo API nhanh chóng với DRF Registration

Bạn có thể xem full APIs tại đây: https://drf-registration.readthedocs.io/en/latest/apis.html

Nếu có bất kỳ thắc mắc vui lòng để lại bình luận hoặc tạo GitHub issues nha!

Happy coding.

Bình luận bằng Facebook