offline avatar offline committed 62d4795

twitter backend renamed to oauth

Comments (0)

Files changed (3)

publicauth/backends/oauth.py

+from __future__ import absolute_import 
+
+import urllib
+import urlparse
+
+from oauth.oauth import OAuthConsumer, OAuthToken, OAuthRequest, OAuthSignatureMethod_HMAC_SHA1
+
+from django.conf import settings as global_settings
+from django.core.urlresolvers import reverse
+
+from annoying.exceptions import Redirect
+
+from publicauth.backends import BaseBackend
+
+
+class OAuthBackend(BaseBackend):
+
+    CONSUMER_KEY = property(lambda self: getattr(global_settings, "%s_CONSUMER_KEY" % self.provider.upper()))
+    CONSUMER_SECRET = property(lambda self: getattr(global_settings, "%s_CONSUMER_SECRET" % self.provider.upper()))
+    REQUEST_TOKEN_URL = property(lambda self: getattr(global_settings, "%s_REQUEST_TOKEN_URL" % self.provider.upper()))
+    ACCESS_TOKEN_URL = property(lambda self: getattr(global_settings, "%s_ACCESS_TOKEN_URL" % self.provider.upper()))
+    AUTHORIZE_URL = property(lambda self: getattr(global_settings, "%s_AUTHORIZE_URL" % self.provider.upper()))
+
+    def begin(self, request, data):
+        """
+        Try to get Request Token from OAuth Provider and 
+        redirect user to provider's site for approval.
+        """
+        consumer = OAuthConsumer(self.CONSUMER_KEY, self.CONSUMER_SECRET)
+        signature_method = OAuthSignatureMethod_HMAC_SHA1()
+        callback = request.build_absolute_uri(reverse('publicauth-complete', args=[self.provider]))
+        oauth_req = OAuthRequest.from_consumer_and_token(consumer, callback=callback, http_url=self.REQUEST_TOKEN_URL)
+        oauth_req.sign_request(signature_method, consumer, None)
+        response = urllib.urlopen(oauth_req.to_url()).read()
+
+        token = OAuthToken.from_string(response) # instatiate token
+
+        oauth_req = OAuthRequest.from_consumer_and_token(consumer, token, http_url=self.AUTHORIZE_URL)
+        oauth_req.sign_request(signature_method, consumer, token)
+        raise Redirect(oauth_req.to_url())
+        
+
+    def validate(self, request, data):
+        signature_method = OAuthSignatureMethod_HMAC_SHA1()
+        consumer = OAuthConsumer(self.CONSUMER_KEY, self.CONSUMER_SECRET)
+        oauth_token = data['oauth_token']
+        oauth_verifier = data['oauth_verifier']
+        oauth_req = OAuthRequest.from_consumer_and_token(consumer, http_url=self.ACCESS_TOKEN_URL)
+        oauth_req.set_parameter('oauth_token', oauth_token)
+        oauth_req.set_parameter('oauth_verifier', oauth_verifier)
+        oauth_req.sign_request(signature_method, consumer, None)
+        response = urllib.urlopen(oauth_req.to_url()).read()
+        self.identity = urlparse.parse_qs(response, keep_blank_values=False)['oauth_token'][0]
+        return response
+
+    def complete(self, request, response):
+        data = self.fill_extra_fields(request, self.get_extra_data(response))
+        request.session['extra'] = data
+        request.session['identity'] = self.identity
+        raise Redirect('publicauth-extra', self.provider)
+
+    def get_extra_data(self, response):
+        return urlparse.parse_qs(response, keep_blank_values=False)
+
+    def extract_data(self, extra, field):
+        try:
+            return {self.PROFILE_MAPPING[field][0]: extra.get(field, '')[0]}
+        except IndexError:
+            return {self.PROFILE_MAPPING[field][0]: ''}
+            
+

publicauth/backends/twitter.py

-from __future__ import absolute_import 
-
-import urllib
-import urlparse
-
-from oauth.oauth import OAuthConsumer, OAuthToken, OAuthRequest, OAuthSignatureMethod_HMAC_SHA1
-
-from django.conf import settings as global_settings
-from django.core.urlresolvers import reverse
-
-from annoying.exceptions import Redirect
-
-from publicauth.backends import BaseBackend
-
-
-class TwitterBackend(BaseBackend):
-
-    CONSUMER_KEY = property(lambda self: getattr(global_settings, "%s_CONSUMER_KEY" % self.provider.upper()))
-    CONSUMER_SECRET = property(lambda self: getattr(global_settings, "%s_CONSUMER_SECRET" % self.provider.upper()))
-    REQUEST_TOKEN_URL = property(lambda self: getattr(global_settings, "%s_REQUEST_TOKEN_URL" % self.provider.upper()))
-    ACCESS_TOKEN_URL = property(lambda self: getattr(global_settings, "%s_ACCESS_TOKEN_URL" % self.provider.upper()))
-    AUTHORIZE_URL = property(lambda self: getattr(global_settings, "%s_AUTHORIZE_URL" % self.provider.upper()))
-
-    def begin(self, request, data):
-        """
-        Try to get Request Token from OAuth Provider and 
-        redirect user to provider's site for approval.
-        """
-        consumer = OAuthConsumer(self.CONSUMER_KEY, self.CONSUMER_SECRET)
-        signature_method = OAuthSignatureMethod_HMAC_SHA1()
-        callback = request.build_absolute_uri(reverse('publicauth-complete', args=[self.provider]))
-        oauth_req = OAuthRequest.from_consumer_and_token(consumer, callback=callback, http_url=self.REQUEST_TOKEN_URL)
-        oauth_req.sign_request(signature_method, consumer, None)
-        response = urllib.urlopen(oauth_req.to_url()).read()
-
-        token = OAuthToken.from_string(response) # instatiate token
-
-        oauth_req = OAuthRequest.from_consumer_and_token(consumer, token, http_url=self.AUTHORIZE_URL)
-        oauth_req.sign_request(signature_method, consumer, token)
-        raise Redirect(oauth_req.to_url())
-        
-
-    def validate(self, request, data):
-        signature_method = OAuthSignatureMethod_HMAC_SHA1()
-        consumer = OAuthConsumer(self.CONSUMER_KEY, self.CONSUMER_SECRET)
-        oauth_token = data['oauth_token']
-        oauth_verifier = data['oauth_verifier']
-        oauth_req = OAuthRequest.from_consumer_and_token(consumer, http_url=self.ACCESS_TOKEN_URL)
-        oauth_req.set_parameter('oauth_token', oauth_token)
-        oauth_req.set_parameter('oauth_verifier', oauth_verifier)
-        oauth_req.sign_request(signature_method, consumer, None)
-        response = urllib.urlopen(oauth_req.to_url()).read()
-        self.identity = urlparse.parse_qs(response, keep_blank_values=False)['oauth_token'][0]
-        return response
-
-    def complete(self, request, response):
-        data = self.fill_extra_fields(request, self.get_extra_data(response))
-        request.session['extra'] = data
-        request.session['identity'] = self.identity
-        raise Redirect('publicauth-extra', self.provider)
-
-    def get_extra_data(self, response):
-        return urlparse.parse_qs(response, keep_blank_values=False)
-
-    def extract_data(self, extra, field):
-        try:
-            return {self.PROFILE_MAPPING[field][0]: extra.get(field, '')[0]}
-        except IndexError:
-            return {self.PROFILE_MAPPING[field][0]: ''}
-            
-

publicauth/settings.py

 PUBLICAUTH_BACKEND_MAPPING = getattr(settings, "PUBLICAUTH_BACKEND_MAPPING", {                     #
     'openid': 'publicauth.backends.openid.OpenIDBackend',                                          #
     'google': 'publicauth.backends.google.GoogleBackend',                                          #
-    'twitter': 'publicauth.backends.twitter.TwitterBackend',                                       #
+    'twitter': 'publicauth.backends.oauth.OAuthBackend',                                           #
     'facebook': 'publicauth.backends.facebook.FacebookBackend',                                    #
     }                                                                                              #
 )                                                                                                  #
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.