A flexible Django Rest Framework Firebase authentication class
Project description
Django Rest Framework Firebase Authentication
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
- Python 2.7 or 3.4+
- Django (version 1.11+)
- Django Rest Framework
- Firebase Admin Python
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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 374fe447a04da5161230ab3f247eb7c67a6ef4c139dd3ac52077287837191db8 |
|
MD5 | 7637dd94c4e40e2b37dd99f3a1c397c3 |
|
BLAKE2b-256 | 3e88d99f49787f0d6f92c251eab25b295b7a213be0a933a87dbd3f207f61695c |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19cf7a924eac4b4814b04c9b9c6fd22d77af628da1e273ba1bcbdfb364510c31 |
|
MD5 | 93c9ccd505d51089c674fb6d30773502 |
|
BLAKE2b-256 | d604b273b2eda5c4a38e1328c42c28b6d155fa5a6ae8a4a59cae468a7caf4efe |