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_type
andscope
(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.py
using 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
Hashes for drf_social_auth-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c5ef25cc92e65dac89aedd7a319734ca4d270e6abac22cf8f3ecdb271cd11bb |
|
MD5 | e664f987caee2f866f4f8497c0473c63 |
|
BLAKE2b-256 | 4f406501fc06d05f0a339f20a599be95b09fb7831e8c7594efe7a48a0b51e1ac |