From 8bda95878c7dcbd01d8375ae233b869f2d331eff Mon Sep 17 00:00:00 2001 From: Dan Braghis <dan.braghis@torchbox.com> Date: Wed, 10 Jan 2018 17:07:26 +0000 Subject: [PATCH] Initial setup for django social auth --- .../apply/users/templates/users/login.html | 2 ++ opentech/settings/base.py | 20 +++++++++++++++++++ opentech/urls.py | 1 + requirements.txt | 2 ++ 4 files changed, 25 insertions(+) diff --git a/opentech/apply/users/templates/users/login.html b/opentech/apply/users/templates/users/login.html index e2355d27b..758c54113 100644 --- a/opentech/apply/users/templates/users/login.html +++ b/opentech/apply/users/templates/users/login.html @@ -9,4 +9,6 @@ {{ form.as_p }} <button type="submit">Login</button> </form> + + <a href="{% url "social:begin" "google-oauth2" %}">Google+</a> {% endblock %} diff --git a/opentech/settings/base.py b/opentech/settings/base.py index ced6888bc..b3b9d40e4 100644 --- a/opentech/settings/base.py +++ b/opentech/settings/base.py @@ -31,6 +31,8 @@ INSTALLED_APPS = [ 'opentech.public.standardpages', 'opentech.public.utils', + 'social_django', + 'wagtail.contrib.modeladmin', 'wagtail.contrib.postgres_search', 'wagtail.contrib.settings', @@ -93,6 +95,8 @@ TEMPLATES = [ 'django.contrib.messages.context_processors.messages', 'wagtail.contrib.settings.context_processors.settings', 'opentech.public.utils.context_processors.global_vars', + 'social_django.context_processors.backends', + 'social_django.context_processors.login_redirect', ], }, }, @@ -185,6 +189,12 @@ AUTH_USER_MODEL = 'users.User' LOGIN_URL = 'users:login' LOGIN_REDIRECT_URL = '/' +AUTHENTICATION_BACKENDS = ( + 'social_core.backends.google.GoogleOAuth2', + + 'django.contrib.auth.backends.ModelBackend', +) + # Logging LOGGING = { @@ -263,3 +273,13 @@ ESI_ENABLED = False # Custom settings ENABLE_STYLEGUIDE = False + +# Social Auth +SOCIAL_AUTH_URL_NAMESPACE = 'social' +SOCIAL_AUTH_GOOGLEOAUTH2_WHITELISTED_DOMAINS = ['opentechfund.org'] + +# Set the Google OAuth2 credentials in ENV variables or local.py +# To create a new set of credentials, go to https://console.developers.google.com/apis/credentials +# Make sure the Google+ API is enabled for your API project +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '' +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '' diff --git a/opentech/urls.py b/opentech/urls.py index f15ca87d8..9048a2eed 100644 --- a/opentech/urls.py +++ b/opentech/urls.py @@ -22,6 +22,7 @@ urlpatterns = [ url('^sitemap\.xml$', sitemap), url('^', include(public_urls)), url('^', include(apply_urls)), + url('^', include('social_django.urls', namespace='social')), ] diff --git a/requirements.txt b/requirements.txt index b4faca247..7f3c62e04 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,6 +12,8 @@ factory_boy==2.9.2 wagtail_factories==0.3.0 flake8 +social_auth_app_django-2.1.0=2.1.0 + # Production dependencies dj-database-url==0.4.1 whitenoise==2.0.4 -- GitLab