Esempio n. 1
0
def canvas(request):
    # When a Facebook user first authorises our app, Facebook redirects to
    # a url with ?code=... The presence of this parameter seems to break
    # auth_complete in the facebook backend (called by social_complete). 
    # So we remove it.
    if 'code' in request.GET:
        request.GET = request.GET.copy()
        del request.GET['code']

    # Try to log in using values POSTed by Facebook.
    try:
        social_complete(request, FacebookBackend.name)
    except AuthException:
        pass

    # Check if logged in.
    if is_complete_authentication(request):
        response = HttpResponseRedirect('/')
        response['P3P'] = 'CP="HONK"' # Allow setting 3rd-party cookie in IE.
        return response

    # finally if not logged in
    auth_url = 'https://www.facebook.com/dialog/oauth?%s' % urlencode({
        'client_id': settings.FACEBOOK_APP_ID,
        'redirect_uri': settings.FACEBOOK_CANVAS_URL,
        'scope': ','.join(settings.FACEBOOK_EXTENDED_PERMISSIONS)
    })
    return render_to_response('fbapp/oauth.html', {'auth_url': auth_url})
    def wrapper(request, *args, **kwargs):
        user = request.user

        # User must me logged via FB backend in order to ensure we talk about the same person
        if not is_complete_authentication(request):
            try:
                user = social_complete(request, FacebookBackend.name)
            except ValueError:
                pass # no matter if failed

        # Not recommended way for FB, but still something we need to be aware of
        if isinstance(user, HttpResponse):
            kwargs.update({'auth_response': user})
        # Need to re-check the completion
        else:
            if is_complete_authentication(request):
                kwargs.update({'access_token': get_access_token(request.user)})
            else:
                request.user = AnonymousUser()

        signed_request = load_signed_request(request.REQUEST.get('signed_request', ''))
        if signed_request:
            kwargs.update({'signed_request': signed_request})

        return func(request, *args, **kwargs)
Esempio n. 3
0
 def wrapper(request, *args, **kwargs):
     # User must me logged via FB backend in order to ensure we talk about the same person
     if not is_complete_authentication(request):
         try:
             social_complete(request, FacebookBackend.name)
         except ValueError:
             pass  # no matter if failed
     # Need to re-check the completion
     if is_complete_authentication(request):
         kwargs.update({'access_token': get_access_token(request.user)})
     else:
         request.user = AnonymousUser()
     signed_request = load_signed_request(
         request.REQUEST.get('signed_request', ''))
     if signed_request:
         kwargs.update({'signed_request': signed_request})
     return func(request, *args, **kwargs)
Esempio n. 4
0
    def wrapper(request, *args, **kwargs):

        fp = open( 'tmp.5.txt', 'w' )
        print >> fp, args
        print >> fp, kwargs
        print >> fp, request

        fb_source = ( request.GET.get('fb_source') )
	if fb_source:
	    kwargs.update( {'fb_source':fb_source} )
	print >> fp, fb_source
	print >> fp, "==========<<<>>>>==========="

        request_ids = ( request.GET.get('request_ids') )
	
	print >> fp, "=====>", request_ids
	if request_ids:
	    kwargs.update( {'request_ids':request_ids} )
            request.session['fbrequests'] = request_ids
	
	print >> fp, request_ids
	print >> fp, "==========<<<>>>>==========="

        user = request.user
        
	# User must me logged via FB backend in order to ensure we talk about the same person
        if not is_complete_authentication(request):
            try:
                user = social_complete(request, FacebookBackend.name)
            except ValueError:
                pass # no matter if failed

        # Not recommended way for FB, but still something we need to be aware of
        if isinstance(user, HttpResponse):
            kwargs.update({'auth_response': user})
        # Need to re-check the completion
        else:
            if is_complete_authentication(request):
                kwargs.update({'access_token': get_access_token(request.user)})
            else:
                request.user = AnonymousUser()

        signed_request = load_signed_request(request.REQUEST.get('signed_request', ''))
        if signed_request:
            kwargs.update({'signed_request': signed_request})

        return func(request, *args, **kwargs)
Esempio n. 5
0
    def wrapper(request, *args, **kwargs):
        user = request.user

        # User must me logged via VKontakte backend in order to ensure we talk about the same person
        if not is_complete_authentication(request):
            try:
                user = social_complete(request, VKOAuth2Backend.name)
            except (ValueError, AttributeError):
                pass  # no matter if failed

        # Not recommended way for VK, but still something we need to be aware of
        if isinstance(user, HttpResponse):
            kwargs.update({'auth_response': user})
        # Need to re-check the completion
        else:
            if is_complete_authentication(request):
                kwargs.update({'access_token': get_access_token(request.user)})
            else:
                request.user = AnonymousUser()

        return func(request, *args, **kwargs)
Esempio n. 6
0
    def wrapper(request, *args, **kwargs):
        user = request.user

        # User must me logged via VKontakte backend in order to ensure we talk about the same person
        if not is_complete_authentication(request):
            try:
                user = social_complete(request, VKontakteOAuth2Backend.name)
            except (ValueError, AttributeError):
                pass # no matter if failed

        # Not recommended way for VK, but still something we need to be aware of
        if isinstance(user, HttpResponse):
            kwargs.update({'auth_response': user})
        # Need to re-check the completion
        else:
            if is_complete_authentication(request):
                kwargs.update({'access_token': get_access_token(request.user)})
            else:
                request.user = AnonymousUser()

        return func(request, *args, **kwargs)
Esempio n. 7
0
def complete(request, backend):
    return social_complete(request, backend)
Esempio n. 8
0
def complete(request, backend):
    return social_complete(request, backend)