DRF_social_auth is an ultra-lightweight solution for social authentication support in Django REST Framework.
Project description
drf_social_auth
drf_social_auth is an ultra-lightweight solution for social authentication support in Django REST Framework. And it supports Google Authentication out-of-box.
Source code https://github.com/coaxsoft/drf-social-auth/
Requirements
- Python 3.6+
- Django 3.0+
- Django REST Framework 3.11+
Installation
pip install drf-social-auth
Usage
Use built-in Google Authentication
- You must specify the following Google settings in your
settings.py:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=
- Add the following to your
urls.py.
from rest_framework_social_auth.google import GoogleLogin
urlpatterns = [
path('google/', GoogleLogin.as_view(), name='google-login')
]
- It's done! You can send your
code,grant_typeandscope(if any) to this endpoint to retrieve profile info from Google Account.
Create your own solution for other social authentication provider
- You need to create an adapter for your provider.
This can be done by inheriting from Adapter abstract class and overriding get_access_token_data and get_profile_data methods.
You should also specify access_token_url and profile_url endpoints.
It is better to use GoogleAdapter in rest_framework_social_auth.google as an example.
from rest_framework_social_auth.adapter import Adapter
class YourProviderAdapter(Adapter):
pass
- Now you need to create a View and specify your adapter.
from rest_framework_social_auth.views import SocialLoginView
class YourProviderLogin(SocialLoginView):
adapter = YourProviderAdapter()
- Create an endpoint in
urls.pyusing your View and you are good to go.
Testing
tox
License
This project is licensed under the terms of the ISC License
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
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