Skip to main content

A library to help integrate Google OAuth 2.0 to your Django application.

Project description

Google APIs OAuth Django

PyPI version Downloads

A library to help integrate Google OAuth 2.0 to your Django application. This library retrieves the necessary tokens you need to access the Google APIs your application is configured for.

Installation

pip install google-apis-oauth-django

Usage

Redirecting users to the login screen

from django.shortcuts import HttpResponseRedirect
import google_apis_oauth

def RedirectToOAuthPage(request):
    oauth_url = google_apis_oauth.get_authorization_url(
        # Path of the "client_id.json" file
        JSON_FILEPATH,
        # Authorization scopes required
        SCOPES,
        # The url where the google oauth should redirect
        # after a successful login.
        REDIRECT_URI,
        # Force the consent prompt even if the user was authorized
        # previously. Defaults to False.
        True)
    return HttpResponseRedirect(url)

Retreving and storing the credentials after successful login

import google_apis_oauth

def RedirectView(request):
    try:
        # Get user credentials
        credentials = google_apis_oauth.get_crendentials_from_callback(
            request,
            JSON_FILEPATH,
            SCOPES,
            REDIRECT_URI
        )

        # Stringify credentials for storing them in the DB
        stringified_token = google_apis_oauth.stringify_credentials(
            credentials)

        # Store the credentials safely in the DB
        ...

        # Now that you have stored the user credentials you
        # can redirect user to your main application.
        ...
    except google_apis_oauth.exceptions.InvalidLoginException:
        # Handle unauthenticated request to the callback uri.

Loading and using the user credentials

import google_apis_oauth
from googleapiclient.discovery import build

# Use the stringified token to get a credentials object
# that can be used to authenticate requests made by
# google-api-python-client
# refreshed is a boolean that tells if the token was expired and was renewed.
# You may want to update the credentials in the database if it is True.
creds, refreshed = google_apis_oauth.load_credentials(stringified_token)

# Using credentials in google-api-python-client.
service = build('calendar', 'v3', credentials=creds)
...

Example

You can refer to this blog for an example where this library is used.

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

google-apis-oauth-django-1.0.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

google_apis_oauth_django-1.0.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file google-apis-oauth-django-1.0.0.tar.gz.

File metadata

  • Download URL: google-apis-oauth-django-1.0.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.5

File hashes

Hashes for google-apis-oauth-django-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bf1e2493d7edf2977eeec8b82001c3e383a0fa88a2254737f0d671b1e46a4c95
MD5 64fabc16b49aa8f8bc060c79c1032b84
BLAKE2b-256 4678ae5eed232037b37615abd034285367abcc052b5cc26876d546f63b4533a3

See more details on using hashes here.

File details

Details for the file google_apis_oauth_django-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: google_apis_oauth_django-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.5

File hashes

Hashes for google_apis_oauth_django-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8350e74124d98970e9d0937ce0f25d49ecc4e6ee74ed1169311219ec73a3b2cf
MD5 85065abfee41cb5d8d9e022a81d05d3b
BLAKE2b-256 c11d5241c9d5603c8bb7e97c60b64d5f85967d1dd03d56df837afe9378b3d79e

See more details on using hashes here.

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