]> git.openstreetmap.org Git - osqa.git/blobdiff - forum_modules/oauthauth/consumer.py
Merge pull request #49 from udacity/login_logout_links
[osqa.git] / forum_modules / oauthauth / consumer.py
index 1d04aa2d9af26d314aea2b536f0dfc17061b24c2..ee9bf97fb576a6e10837421d5f67f76ed08ed263 100644 (file)
@@ -40,7 +40,7 @@ class OAuthAbstractAuthConsumer(AuthenticationConsumer):
         if token.key != request.GET.get('oauth_token', 'no-token'):
             raise InvalidAuthentication(_("Something went wrong! Auth tokens do not match"))
 
-        access_token = self.fetch_access_token(token)
+        access_token = self.fetch_access_token(token, request.GET.get('oauth_verifier', '')) 
 
         return access_token.to_string()
 
@@ -52,7 +52,7 @@ class OAuthAbstractAuthConsumer(AuthenticationConsumer):
         parameters = {}
         # If the installation is configured to automatically redirect to the Twitter provider done page -- do it.
         if bool(TWITTER_AUTO_CALLBACK_REDIRECT):
-            callback_url = '%s%s' % (APP_URL, reverse('auth_provider_done', kwargs={ 'provider' : 'twitter', }))
+            callback_url = '%s%s' % (APP_URL, reverse('auth_provider_done', prefix='/', kwargs={'provider' : 'twitter'}))
             # Pass
             parameters.update({
                 'oauth_callback' : callback_url,
@@ -74,8 +74,9 @@ class OAuthAbstractAuthConsumer(AuthenticationConsumer):
         full_url='%s?%s'%(self.authorization_url, data)
         return full_url
 
-    def fetch_access_token(self, token):
+    def fetch_access_token(self, token, oauth_verifier): 
         oauth_request = oauth2.Request.from_consumer_and_token(self.consumer, token=token, http_url=self.access_token_url)
+        oauth_request['oauth_verifier'] = oauth_verifier 
         oauth_request.sign_request(self.signature_method, self.consumer, token)
         params = oauth_request
         data = urllib.urlencode(params)