def post(self, request, *args, **kwargs): cookie = facebook.get_user_from_cookie(request.COOKIES, settings.FACEBOOK_APP_ID, settings.FACEBOOK_API_SECRET) if cookie: uid = cookie['uid'] facebook_api = facebook.GraphAPI(cookie['access_token']); try: profile = facebook_api.get_object('me') post_req = request.POST.copy() post_req["username"] = profile["name"] post_req["email"] = profile["email"] password = rand1(8) post_req["password1"]=post_req["password2"]=password request.POST = post_req except URLError: pass else: profile = {} http_response = register(request, form_class=RegistrationFormExpandedUsername, *args, **kwargs) if "email" in profile and isinstance(http_response, HttpResponseRedirect): try: new_user = User.objects.get(email=profile["email"]) UserSocialAuth.objects.create(user=new_user, uid=uid, provider="facebook", extra_data=simplejson.dumps({u'access_token': cookie['access_token'], u'expires': None, u'id': uid, u'public_profile_url':'https://graph.facebook.com/%s' % (profile["username"]) }) ) except User.DoesNotExist: pass return http_response
def get(self, request, *args, **kwargs): twitter_cookie = twitter.get_user_from_cookie(request.COOKIES, settings.TWITTER_CONSUMER_SECRET) if twitter_cookie: uid = twitter_cookie['uid'] post_req = request.POST.copy() #post_req["email"] = profile["email"] password = rand1(8) post_req["password1"]=post_req["password2"]=password request.POST = post_req else: profile = {} http_response = register(request, form_class=RegistrationFormExpandedUsername, *args, **kwargs) if twitter_cookie and isinstance(http_response, HttpResponseRedirect): try: new_user = User.objects.get(username=profile["username"]) UserSocialAuth.objects.create(user=new_user, uid=uid, provider="twitter") except User.DoesNotExist: pass return http_response