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.

Source Distribution

drf-firebase-authentication-1.0.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file drf-firebase-authentication-1.0.1.tar.gz.

File metadata

  • Download URL: drf-firebase-authentication-1.0.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for drf-firebase-authentication-1.0.1.tar.gz
Algorithm Hash digest
SHA256 374fe447a04da5161230ab3f247eb7c67a6ef4c139dd3ac52077287837191db8
MD5 7637dd94c4e40e2b37dd99f3a1c397c3
BLAKE2b-256 3e88d99f49787f0d6f92c251eab25b295b7a213be0a933a87dbd3f207f61695c

See more details on using hashes here.

File details

Details for the file drf_firebase_authentication-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: drf_firebase_authentication-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for drf_firebase_authentication-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 19cf7a924eac4b4814b04c9b9c6fd22d77af628da1e273ba1bcbdfb364510c31
MD5 93c9ccd505d51089c674fb6d30773502
BLAKE2b-256 d604b273b2eda5c4a38e1328c42c28b6d155fa5a6ae8a4a59cae468a7caf4efe

See more details on using hashes here.

Supported by

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