集成facebook身份验证时遇到问题

时间:2012-07-25 15:20:11

标签: facebook

我正在关注:https://developers.facebook.com/docs/guides/web/

我的网站有自己的登录系统(用Django / Python编写)。如果不使用django-social-auth类型的插件,我想将facebook身份验证集成到我的网络应用程序中。

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '{{facebook_app_id}}', // App ID
      channelUrl : '//{{host_name}}/external/fb_channel', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });
    // Additional initialization code here
  };
  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

但是,我遵循了指令(https://developers.facebook.com/docs/guides/web/),登录按钮按预期显示,点击后,弹出窗口显示允许我的应用程序。 (我在127.0.0.1运行我的服务器,这是localhost)

那么,下一步是什么?当用户点击登录并允许它时,我希望进行一些服务器端验证,以便使用fb帐户登录我的用户。但我现在不知道该怎么做。

点击登录FB后,它闪烁,没有点击我的服务器。需要一些指导。

谢谢。

1 个答案:

答案 0 :(得分:0)

我无法引导您完成您需要的所有代码,但是我可以解释我过去使用过的一般过程(包括一些Django站点),希望您能够用它来建立你的网站:

  1. 整合Facebook JavaScript SDK
  2. 将调用FB.login的JavaScript函数绑定到“使用Facebook登录”按钮,请求该用户所需的所有权限
  3. function(response)调用的FB.login部分,处理返回的响应,然后对Django视图执行Ajax POST(我使用jQuery),获取响应,解析它以检索用户的访问令牌并将其存储在该用户的用户配置文件对象中。
  4. 然后,您可以使用此access_token代表该用户服务器端发出Facebook Graph API请求,或者如果您愿意,您实际上只需使用JavaScript SDK即可完全在客户端进行所有通话 - 有很多Ajax可以与Django后端进行交互。