Firebase authentication with django graphene
Project description
graphene-django-firebase-auth
Authentication provider for graphene-django and Firebase's Authentication service.
Note this is a WIP and abandoned project since I never ended up using Firebase. But the code is still a good starting point as of writing this.
Partially inspired by django-firebase-auth for Django REST framework.
This app is used with Firebase Authentication on a client.
Compatibility
This code has only been tested with Python 3.7.0
and Django 2.1.2
.
Installing
- Install the app:
pipenv install graphene-django-firebase-auth
-
Download the JSON file from your Firebase console with your account's credentials.
-
Set
FIREBASE_KEY_FILE
in your project's settings to the path of the credentials file:
FIREBASE_KEY_FILE = os.path.join(BASE_DIR, 'path/to/firebase-credentials.json')
- Add the authentication backend to
AUTHENTICATION_BACKENDS
:
AUTHENTICATION_BACKENDS = ['firebase_auth.authentication.FirebaseAuthentication']
- Add
firebase_auth
toINSTALLED_APPS
:
INSTALLED_APPS = [
'...',
'firebase_auth',
]
- Add
FirebaseAuthMixin
to yourAUTH_USER_MODEL
:
class User(PermissionsMixin, FirebaseAuthMixin):
# ...
- Build and run your DB migrations to add the changes:
./manage.py makemigrations
./manage.py migrate
Using the package
Once installed, authentication will be managed using this package.
You can access info.context.user
to add authentication logic, such as
with the following:
def resolve_users(self, info, **kwargs):
success = False
if info.context.user.is_authenticated:
success = True
return success
Sending tokens on the client
Your client will need to send an Authorization: Bearer
token on each request. How you do this depends on your client and is outside the scope
of this documentation.
Developing
Setting up your environment
- Install the dependencies:
pipenv install -d
-
Download the JSON file from your Firebase console with your account's credentials.
-
Create an
.env
file using.env.example
as a template. Make sure to specify the path to the file in the previous step. -
Enter the virtual environment:
./manage.py shell
Other commands
# Run the tests
./manage.py test
# Lint the code
./lint.sh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-graphene-firebase-auth-0.0.17.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b0376b56781e1ee260c203c00033bd139417187e5380d4c91d56832a298cade |
|
MD5 | f2165b61d4e7cefb072ebb232cc2cb99 |
|
BLAKE2b-256 | 89b22cee5b286fa5c34a2364165b67b775ac31c8e43ebdffc29983179c646cf2 |