]> git.parisson.com Git - django-social-auth.git/commitdiff
Fix google oauth athorization request. Closes #202.
authorMatías Aguirre <matiasaguirre@gmail.com>
Thu, 22 Dec 2011 17:01:17 +0000 (15:01 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Thu, 22 Dec 2011 17:01:17 +0000 (15:01 -0200)
social_auth/backends/__init__.py
social_auth/backends/google.py

index 53c6cb3e990d21a4b98f06b26235767dd7aef851..4a93c1265ea62e4b0dcb25e0e828a808c3194721 100644 (file)
@@ -171,6 +171,7 @@ class SocialAuthBackend(ModelBackend):
         except User.DoesNotExist:
             return None
 
+
 class OAuthBackend(SocialAuthBackend):
     """OAuth authentication backend base class.
 
@@ -456,8 +457,7 @@ class ConsumerBasedOAuth(BaseOAuth):
         token = self.unauthorized_token()
         name = self.AUTH_BACKEND.name + 'unauthorized_token_name'
         self.request.session[name] = token.to_string()
-        return self.oauth_request(token, self.AUTHORIZATION_URL,
-                                  self.auth_extra_arguments()).to_url()
+        return self.oauth_authorization_request(token).to_url()
 
     def auth_complete(self, *args, **kwargs):
         """Return user, might be logged in"""
@@ -484,6 +484,11 @@ class ConsumerBasedOAuth(BaseOAuth):
         response = self.fetch_response(request)
         return Token.from_string(response)
 
+    def oauth_authorization_request(self, token):
+        """Generate OAuth request to authorize token."""
+        return self.oauth_request(token, self.AUTHORIZATION_URL,
+                                  self.auth_extra_arguments())
+
     def oauth_request(self, token, url, extra_params=None):
         """Generate OAuth request, setups callback url"""
         params = {'oauth_callback': self.redirect_uri}
index d7fddee0a831fdb539bd2b49f582e11c8d5dab22..21b545335250e282f102a0aee9fabd616b0ae501 100644 (file)
@@ -19,6 +19,8 @@ logger = logging.getLogger(__name__)
 from urllib import urlencode
 from urllib2 import Request, urlopen
 
+from oauth2 import Request as OAuthRequest
+
 from django.conf import settings
 from django.utils import simplejson
 
@@ -116,6 +118,12 @@ class GoogleOAuth(BaseGoogleOAuth):
         url, params = request.to_url().split('?', 1)
         return googleapis_email(url, params)
 
+    def oauth_authorization_request(self, token):
+        """Generate OAuth request to authorize token."""
+        return OAuthRequest.from_consumer_and_token(self.consumer,
+                    token=token,
+                    http_url=self.AUTHORIZATION_URL)
+
     def oauth_request(self, token, url, extra_params=None):
         extra_params = extra_params or {}
         scope = GOOGLE_OAUTH_SCOPE + \
@@ -147,8 +155,7 @@ class GoogleOAuth(BaseGoogleOAuth):
 
     def registered(self):
         """Check if Google OAuth Consumer Key and Consumer Secret are set"""
-        key, secret = self.get_key_and_secret()
-        return key != 'anonymous' and secret != 'anonymous'
+        return self.get_key_and_secret() != ('anonymous', 'anonymous')
 
 
 # TODO: Remove this setting name check, keep for backward compatibility