Beispiel #1
0
def login_facebook_connect(request):
    print request.POST
    status = 'unknown failure'
    try:
        userid = request.POST['userid']
        username = request.POST['username']
        email = request.POST['email']

        try:
            fb = FacebookUser.objects.get(facebook_id=userid)
            status = "logged in existing user"
            print fb
        except FacebookUser.DoesNotExist:
            try:
                profile = Profile.objects.get(primary_email=email)
            except Profile.DoesNotExist:
               pass 
                
            contrib_user = User()
            contrib_user.save()
            contrib_user.username = u"fbuser_%s" % contrib_user.id
            print contrib_user.username

            fb = FacebookUser()
            fb.facebook_id = user
            fb.contrib_user = contrib_user

            temp = hashlib.new('sha1')
            temp.update(str(datetime.datetime.now()))
            password = temp.hexdigest()

            contrib_user.set_password(password)
            fb.contrib_password = password
            fb.save()
            contrib_user.save()
            status = "created new user"
            print fb
            authenticated_user = auth.authenticate(
                                         username=fb.contrib_user.username, 
                                         password=fb.contrib_password)
            auth.login(request, authenticated_user)
        else:
            status = 'wrong hash sig'

            logging.debug("FBConnect: user %s with exit status %s" % (user, status))

    except Exception, e:
        logging.debug("Exception thrown in the FBConnect ajax call: %s" % e)
        print repr(e)
def login_facebook_connect(request):
    status = reverse('userena_signup')
    try:
        expires = request.POST['expires']
        ss = request.POST['ss']
        session_key = request.POST['session_key']
        user = request.POST['user']
        sig = request.POST['sig']

        pre_hash_string = "expires=%ssession_key=%sss=%suser=%s%s" % (
            expires,
            session_key,
            ss,
            user,
            settings.FACEBOOK_APPLICATION_SECRET,
        )
        post_hash_string = hashlib.new('md5')
        post_hash_string.update(pre_hash_string)
        if post_hash_string.hexdigest() == sig:
            try:
                fb = FacebookUser.objects.get(facebook_id=user)
            except FacebookUser.DoesNotExist:
                fb = FacebookUser()
                fb.facebook_id = user
                temp = hashlib.new('sha1')
                temp.update(str(datetime.datetime.now()))
                #password = temp.hexdigest()
                #fb.contrib_password = password
                fb.save()
            if fb.contrib_user:
                fb.contrib_user.backend = 'django.contrib.auth.backends.ModelBackend'
                auth.login(request, fb.contrib_user)
                status = reverse("website-user-home")
            elif not request.user.is_anonymous():
                fb.contrib_user = request.user
                fb.save()
                status = reverse("website-user-home")
            else:
                request.session['fb_pk'] = fb.pk
        else:
            status = reverse("website-home")

            logging.debug("FBConnect: user %s with exit status %s" % (user, status))

    except Exception, e:
        status = reverse("website-home")
        logging.debug("Exception thrown in the FBConnect ajax call: %s" % e)
Beispiel #3
0
def login_facebook_connect(request):
    status = 'unknown failure'
    try:
        expires = request.POST['expires']
        ss = request.POST['ss']
        session_key = request.POST['session_key']
        user = request.POST['user']
        sig = request.POST['sig']
    
        pre_hash_string = "expires=%ssession_key=%sss=%suser=%s%s" % (
            expires,
            session_key,
            ss,
            user,
            settings.FACEBOOK_APPLICATION_SECRET,
        )
        post_hash_string = hashlib.new('md5')
        post_hash_string.update(pre_hash_string)
        if post_hash_string.hexdigest() == sig:
            try:
                fb = FacebookUser.objects.get(facebook_id=user)
                status = "logged in existing user"
            except FacebookUser.DoesNotExist:
                contrib_user = User()
                contrib_user.save()
                contrib_user.username = u"fbuser_%s" % contrib_user.id

                fb = FacebookUser()
                fb.facebook_id = user
                fb.contrib_user = contrib_user
                
                temp = hashlib.new('sha1')
                temp.update(str(datetime.datetime.now()))
                password = temp.hexdigest()
                    
                contrib_user.set_password(password)
                fb.contrib_password = password
                    
                fb.save()
                contrib_user.save()
                status = "created new user"
                
            authenticated_user = auth.authenticate(username=fb.contrib_user.username, password=fb.contrib_password)
            auth.login(request, authenticated_user)
        else:
            status = 'wrong hash sig'
            
            logging.debug("Facebook connect: user %s with exit status %s" % (user, status))
            
    except Exception, e:
        logging.debug("Exception thrown in the FBConnect ajax call: %s" % e)