django-trench provides a set of REST API endpoints to supplement django-rest-framework with multi-factor authentication (MFA, 2FA). It supports both standard built-in authentication methods, as well as JWT (JSON Web Token).
We deliver a couple of sample secondary authentication methods including sending OTP based code by email, SMS/text as well as through 3rd party mobile apps or utilising YubiKey. Developers can easily add their own auth backend supporting any communication channel.


  • Easily pluggable and compatible with django-rest-framework

  • Allows user to pick an additional authentication method from range of backends defined by a developer. Read more: backends

  • Comes out of a box with email, SMS, mobile apps and YubiKey support


  • Python

  • Django

  • Django REST Framework

Supported versions

  • Python 3.7, 3.8. 3.9

  • Django 2.x, 3.x,

  • Django REST Framework >= 3.9

Quick Start

  1. Install the package using pip:

pip install django-trench

or add it to your requirements file.

  1. Add trench library to INSTALLED_APPS in your app settings file:

    'rest_framework.authtoken',  # In case of implementing Token Based Authentication
  1. Run migrations

Read further in: installation.


Trench uses Transifex service to translate our package into other languages.
We will appreciate your help with translation.