"Django Google auth"
Project description
This project help with Google Authentication flow when you prefer API approach. It uses existing User model in your database and no other tables are created. It also lets you modify parameters based on your business logic and current authentication flow.
Quick Start
Add “google_auth” to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
...
'google_auth',
]
Add “email” field to your user table if it doesn’t already exist.
(OPTIONAL) To have user retrieved info saved in your add these fields to your user table:
given_name
family_name
Add a new url to your projects url.py like this:
re_path('auth/url', views.AuthURL.as_view(), name="auth_url")
Create a new view which is a subclass of ‘AuthCallback’ like this:
class CallbackView(AuthCallback):
def get(self, request):
user = super(CallbackView, self).get(request)
# create new token and authenticate user. Return token and required parameters here``
Add another new url to your projects url.py like this:
re_path('auth/calback', views.CallbackView.as_view(), name="auth_calback_url")
Configuration parameter
AUTH_USER_MODEL: Authentication user table in your models
CLIENT_ID: Retrieved from Google console
CLIENT_SECRET: Retrieved from Google console
REDIRECT_URI: Redirect url same as redirect url in google console (Usually it should route to your front-end url)
VALIDATE_STATE: (OPTIONAL) state is a server side generated security feature suggested by google. It will be saved in session. default value it True. If set to False it will bypass this security check.
SET_REGISTER_USER_FIELD: (OPTIONAL) If you want to set some value in User table after login/register process is successful, you can set it here. In example below, we set user verified field to True when login/register process is successful:
SET_REGISTER_USER_FIELD = { "verified": True }
USER_INFO_REQUEST_URI: (OPTIONAL) Google verification url. Should be fine with default value.
URLs Flow
First call ‘auth/url’ by POST(Empty body) or GET Method.
GET method will return generated URL in JSON response. Your front end should redirect to this URL.
POST method will return 302 status code with redirect url.
After redirecting to received URL from step 1, user can verify from Google. If verification is successful Google will call your redirect_uri.
when redirect_uri is called your frontend should call the Callback url you already created (step 6 in Quick start).
IMPORTANT: You must add all query params received from Google in this step to ‘auth/callback’ as query params.
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 django-google-oauth-rest-1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f0c029bede9a05dbae6d7d85eaa04bc10ce78620cfdd6b4c761339432669c53 |
|
MD5 | 779b956f841bad9469a98f45aaa63289 |
|
BLAKE2b-256 | 7274838d07ea8a3fb097b7d95e89cc15312b23b1c96d4366555c09db985fc532 |
Hashes for django_google_oauth_rest-1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce8eb9f425c872d510a47e04faeea318b499232b5e64b277d3ad6d0eb5357c20 |
|
MD5 | 3ec9d526cd7ec3e01e3622455e66691c |
|
BLAKE2b-256 | 134424fab0020469e095c9de76bec07d142cd2b64dfbdbd02a576b87e38bccca |