· 6 years ago · Mar 03, 2019, 11:34 PM
1def begin_auth(request):
2 twitter = Twython(
3 twitter_token = TWITTER_KEY,
4 twitter_secret = TWITTER_SECRET,
5 callback_url = request.build_absolute_uri(reverse('portnoy.views.thanks'))
6 )
7 # Request an authorization url to send the user to...
8 auth_props = twitter.get_authentication_tokens()
9
10# Then send them over there, durh.
11 request.session['request_token'] = auth_props
12 return HttpResponseRedirect(auth_props['auth_url'])
13
14def thanks(request, redirect_url='/'):
15 c = RequestContext(request)
16 # for permanent ones and store them...
17 twitter = Twython(
18 twitter_token = TWITTER_KEY,
19 twitter_secret = TWITTER_SECRET,
20 oauth_token = request.session['request_token']['oauth_token'],
21 oauth_token_secret = request.session['request_token']['oauth_token_secret']
22 )
23
24 # Retrieve the tokens we want...
25 authorized_tokens = twitter.get_authorized_tokens()
26 request.session['request_tokens'] = authorized_tokens
27 debug('thanks', request.session['request_tokens'])
28
29 user = User.objects.filter(username=authorized_tokens['screen_name'])
30 if user.exists():
31 user = user[0]
32 user.backend='django.contrib.auth.backends.ModelBackend'
33 auth.login(request,user)
34 else:
35 return render_to_response('twitter_register.html', c)
36 return HttpResponseRedirect(redirect_url)