From 350fd24214ffa2740ce4df67c418bf89bb6476cb Mon Sep 17 00:00:00 2001 From: Jordan Ambra Date: Tue, 21 Apr 2015 02:16:47 -0400 Subject: [PATCH] If the current CALLBACK_DOMAIN is empty, set the redirect URI to the current site's domain, if possible --- googleauth/views.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/googleauth/views.py b/googleauth/views.py index 89fec1e..0b71cfd 100644 --- a/googleauth/views.py +++ b/googleauth/views.py @@ -33,10 +33,15 @@ def generate_csrf_token(): return ''.join(random.choice(CSRF_CHARACTERS) for x in range(32)) -def generate_redirect_uri(): +def generate_redirect_uri(request): scheme = 'https' if USE_HTTPS else 'http' path = reverse('googleauth_callback') - return '%s://%s%s' % (scheme, CALLBACK_DOMAIN, path) + + domain = CALLBACK_DOMAIN + if domain == "": + domain = request.META.get("HTTP_HOST", domain) + + return '%s://%s%s' % (scheme, domain, path) # @@ -51,7 +56,7 @@ def login(request): 'client_id': CLIENT_ID, 'response_type': 'code', 'scope': 'openid email profile', - 'redirect_uri': generate_redirect_uri(), + 'redirect_uri': generate_redirect_uri(request), 'state': csrf_token, } @@ -73,7 +78,7 @@ def callback(request): 'code': request.GET.get('code'), 'client_id': CLIENT_ID, 'client_secret': CLIENT_SECRET, - 'redirect_uri': generate_redirect_uri(), + 'redirect_uri': generate_redirect_uri(request), 'grant_type': 'authorization_code', }