コード例 #1
0
    def process_request(self, request):
        """
        Enables ``request.facebook`` and ``request.facebook.graph`` in your views 
        once the user authenticated the  application and connected with facebook. 
        You might want to use this if you don't feel confortable with the 
        javascript library.
        """
        
        fb_user = facebook.get_user_from_cookie(request.COOKIES,
            get_setting_for_current_site('FACEBOOK_API_KEY'),
            get_setting_for_current_site('FACEBOOK_SECRET_KEY'))

        request.facebook = Facebook(fb_user)
        
        return None
コード例 #2
0
def twitter(request, account_inactive_template="socialregistration/account_inactive.html", extra_context=dict()):
    """
    Actually setup/login an account relating to a twitter user after the oauth
    process is finished successfully
    """
    client = OAuthTwitter(
        request,
        get_setting_for_current_site("TWITTER_CONSUMER_KEY"),
        get_setting_for_current_site("TWITTER_CONSUMER_SECRET_KEY"),
        get_setting_for_current_site("TWITTER_REQUEST_TOKEN_URL"),
    )

    user_info = client.get_user_info()

    if request.user.is_authenticated():
        # Handling already logged in users connecting their accounts
        try:
            profile = TwitterProfile.objects.get(twitter_id=user_info["id"])
        except TwitterProfile.DoesNotExist:  # There can only be one profile!
            profile = TwitterProfile.objects.create(user=request.user, twitter_id=user_info["id"])

        return HttpResponseRedirect(_get_next(request))

    user = authenticate(twitter_id=user_info["id"])

    if user is None:
        profile = TwitterProfile(twitter_id=user_info["id"])
        user = User()
        request.session["socialregistration_profile"] = profile
        request.session["socialregistration_user"] = user
        request.session["next"] = _get_next(request)
        return HttpResponseRedirect(reverse("socialregistration_setup"))

    if not user.is_active:
        return render_to_response(account_inactive_template, extra_context, context_instance=RequestContext(request))

    login(request, user)

    return HttpResponseRedirect(_get_next(request))
コード例 #3
0
def facebook_js():
    return {'facebook_api_key' : get_setting_for_current_site('FACEBOOK_API_KEY'), 'is_https' : bool(_https())}