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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|