def callback(request): request_token = request.GET['oauth_token'] verifier = request.GET['oauth_verifier'] oauth_client = OAuth1Session(_CONSUMER_KEY, client_secret=_CONSUMER_SECRET, resource_owner_key=request_token, verifier=verifier) access_token_url = _ACCESS_TOKEN_URL response = oauth_client.fetch_access_token(access_token_url) try: user = User.objects.get(twitter_id=response['user_id']) except User.DoesNotExist: user = User() user.twitter_id = response['user_id'] user.oauth_token = response['oauth_token'] user.oauth_token_secret = response['oauth_token_secret'] user.save() if user.oauth_token != response['oauth_token']: user.oauth_token = response['oauth_token'] user.oauth_token_secret = response['oauth_token_secret'] user.save() request.session['access_token'] = response['oauth_token'] return redirect('postermaker:poster')
def authenticate(self, token=None, req_token = None): if not token: return None if not req_token: return None token = oauth.OAuthToken.from_string(token) if token.key != req_token: return None token = exchange_request_token_for_access_token(CONSUMER, CONNECTION, token) # Actually login obj = is_authenticated(CONSUMER, CONNECTION, token) if obj is False: return None #try: user = User.objects.get(username=obj['screen_name']) #except: user = User(username=obj['screen_name']) #req.session['user_id'] = user.id #del req.session['token'] user = User.all().filter('username = '******'screen_name']).get() if not user: user = User(key_name="usertw%s" % obj['screen_name'], username = "******" % (obj['screen_name'])) user.oauth_token = token.key user.oauth_token_secret = token.secret user.save() return user