Note that there are some explanatory texts on larger screens.

plurals
  1. POImplementing Facebook logout functionality for Django App
    primarykey
    data
    text
    <p>I have created a django app where users can be looged in with both django app username or facebook username. Now i want to implement a logout functionality while logging in through facebook . Can somebody help me to do this.Please help me to find any tutorials which explains these. I will paste my code here. </p> <p><strong>html facebook part</strong></p> <pre><code>{% load facebookconnect %} {% facebook_connect_login_button %} {% facebook_connect_script %} </code></pre> <p><strong>facebookconnect.py</strong></p> <pre><code>from django import template from django.conf import settings from django.core.urlresolvers import reverse register = template.Library() class FacebookScriptNode(template.Node): def render(self, context): return """ &lt;script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; FB.init("%s", "%s"); function facebook_onlogin() { var uid = FB.Facebook.apiClient.get_session().uid; var session_key = FB.Facebook.apiClient.get_session().session_key; var expires = FB.Facebook.apiClient.get_session().expires; var secret = FB.Facebook.apiClient.get_session().secret; var sig = FB.Facebook.apiClient.get_session().sig; fb_connect_ajax(expires, session_key, secret, uid, sig); } function fb_connect_ajax(expires, session_key, ss, user, sig) { var post_string = 'expires=' + expires; post_string = post_string + '&amp;session_key=' + session_key; post_string = post_string + '&amp;ss=' + ss; post_string = post_string + '&amp;user=' + user; post_string = post_string + '&amp;sig=' + sig; $.ajax({ type: "POST", url: "%s", data: post_string, success: function(msg) { window.location = '%s'; //.reload() } }); } &lt;/script&gt; """ % (settings.FACEBOOK_API_KEY, reverse('xd_receiver'), reverse('facebook_connect_ajax'), settings.LOGIN_REDIRECT_URL) def facebook_connect_script(parser, token): return FacebookScriptNode() register.tag(facebook_connect_script) class FacebookLoginNode(template.Node): def render(self, context): return "&lt;fb:login-button onlogin='facebook_onlogin();'&gt;&lt;/fb:login-button&gt;" #return "&lt;fb:login-button onclick="openPopup('https://graph.facebook.com/oauth/authorize?client_id=a0acfd122e64fc21cfa34d47369f0c97&amp;redirect_uri=http://mysite.com/mypage&amp;display=popup');"&gt;&lt;/fb:login-button&gt;" def facebook_connect_login_button(parser, token): return FacebookLoginNode() register.tag(facebook_connect_login_button) </code></pre> <p><strong>function in views.py</strong></p> <pre><code>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("FBConnect: user %s with exit status %s" % (user, status)) except Exception, e: logging.debug("Exception thrown in the FBConnect ajax call: %s" % e) return HttpResponse("%s" % status) def xd_receiver(request): return render_to_response('xd_receiver.html') </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload