Skip to main content

A flexible Django Rest Framework Firebase authentication class

Project description

Django Rest Framework Firebase Authentication

PyPI PyPI - License

This package provides a base Firebase Authentication backend class for the Django rest framework. Two key methods are not implemented for more flexebility. Let's keep it simple, stupid.

Requirements

Installation

pip install drf-firebase-authentication

Usage

1. Subclass BaseFirebaseAuthentication and implement its template methods:

Decide by yourself how you want to associate Firebase users with local django users by implementing the .get_django_user() method accordingly.

Put your code into a authentication.py file inside an app dedicated to your projects REST Api.

from drf_firebase.authentication import BaseFirebaseAuthentication
from firebase_admin import credentials, initialize_app
from django.contrib.auth import get_user_model

firebase_creds = credentials.Certificate('path/to/firebase/credentials.json')
firebase_app = initialize_app(firebase_creds)

class FirebaseAuthentication(BaseFirebaseAuthentication):
	"""
	Example implementation of a DRF Firebase Authentication backend class
	"""
	def get_firebase_app(self):
		return firebase_app

	def get_django_user(self, firebase_user_record):
		return get_user_model().objects.get_or_create(
			username=firebase_user_record.uid,
		)[0]

2. Add the just created Firebase authentication backend to your settings.py:

Replace YOUR_RESTAPI_APP with the app you put your authentication.py file in.

REST_FRAMEWORK = {
	'DEFAULT_AUTHENTICATION_CLASSES': (
		'rest_framework.authentication.SessionAuthentication', # default
		'rest_framework.authentication.BasicAuthentication', # default
		'YOUR_RESTAPI_APP.authentication.FirebaseAuthentication',
	),
}

Project details


Download files

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

Files for drf-firebase-authentication, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size drf_firebase_authentication-1.0.1-py3-none-any.whl (5.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size drf-firebase-authentication-1.0.1.tar.gz (4.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page