Skip to main content

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

  1. You must specify the following Google settings in your settings.py:
GOOGLE_CLIENT_ID= 
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=
  1. Add the following to your urls.py.
from rest_framework_social_auth.google import GoogleLogin

urlpatterns = [
    path('google/', GoogleLogin.as_view(), name='google-login')
]
  1. It's done! You can send your code, grant_type and scope (if any) to this endpoint to retrieve profile info from Google Account.

Create your own solution for other social authentication provider

  1. 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
  1. Now you need to create a View and specify your adapter.
from rest_framework_social_auth.views import SocialLoginView

class YourProviderLogin(SocialLoginView):
    adapter = YourProviderAdapter()
  1. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drf_social_auth-0.1.0.tar.gz (5.5 kB view hashes)

Uploaded Source

Built Distribution

drf_social_auth-0.1.0-py2.py3-none-any.whl (6.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page