Skip to content

Instantly share code, notes, and snippets.

@dannyroa
Created January 22, 2013 19:24
Show Gist options
  • Save dannyroa/4597531 to your computer and use it in GitHub Desktop.
Save dannyroa/4597531 to your computer and use it in GitHub Desktop.
class FacebookBackend:
"""
Authenticates against django.contrib.auth.models.User.
"""
@ staticmethod
def authenticate(request):
if 'access_token' in request.session:
access_token = request.session['access_token']
elif request.GET.has_key('code'):
access_token = facebook_get_access_token(request.GET['code'])
request.session['access_token'] = access_token
else:
return None
graph = facebook.GraphAPI(access_token)
profile = graph.get_object("me")
facebook_id = str(profile["id"])
try:
profile = Profile.objects.get(facebook_id=facebook_id)
profile.user.backend='services.backends.FacebookBackend'
return profile.user
except Profile.DoesNotExist:
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment