except User.DoesNotExist:
return None
+
class OAuthBackend(SocialAuthBackend):
"""OAuth authentication backend base class.
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"""
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}
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
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 + \
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