diff --git a/opentech/apply/users/templates/users/login.html b/opentech/apply/users/templates/users/login.html index e2355d27b3b166c1b34a8edc4ea0b2c1ab02c3c3..758c541130c931b9b13114c2b0c4a5764bd3b155 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 ced6888bc9e76d811695568ff455bf531c856afa..b3b9d40e4c35cbc9e895f2cbae87b484f8ec1d23 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 f15ca87d8a2f1e85d1753b4bb7f3d778f2348ec7..9048a2eedac7677a8273b30a5ec743eb795a84b8 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 b4faca247b766cd071cf0f20e18e3861dcb15956..7f3c62e04ee9ea2fbf40142d29a7fdfc89f729fa 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