Facebook身份验证到我的PHP页面

Facebook身份验证到我的PHP页面,php,facebook,authentication,Php,Facebook,Authentication,我正在尝试允许用户使用Facebook在我的页面上注册。 这就是我连接/登录Facebook的方式(只是JS代码) 我的问题是,我想在注册后登录。我将使用$.post请求进行注册,但是现在什么是验证实际登录的最佳方法,因为您无法检索用户FB密码 我希望当用户登录Facebook时,页面能够执行实际的登录身份验证(从我的站点)。例如: 将有两种方法登录到我的网站 使用我的登录界面(当用户名 密码正确) 使用Facebook(它应该将数据发布到与通过我的站点登录相同的PHP页面,这样就好像用户通过我

我正在尝试允许用户使用Facebook在我的页面上注册。 这就是我连接/登录Facebook的方式(只是JS代码)

我的问题是,我想在注册后登录。我将使用$.post请求进行注册,但是现在什么是验证实际登录的最佳方法,因为您无法检索用户FB密码

我希望当用户登录Facebook时,页面能够执行实际的登录身份验证(从我的站点)。例如:

将有两种方法登录到我的网站

  • 使用我的登录界面(当用户名 密码正确)
  • 使用Facebook(它应该将数据发布到与通过我的站点登录相同的PHP页面,这样就好像用户通过我的站点登录一样)
  • 我的第一次尝试是使用个人电子邮件登录到该网站(但如果有人获得他们的电子邮件,那么用户帐户很容易被黑客入侵)。我不希望用户在已经验证了Facebook帐户的身份后必须输入密码

    我不能同时使用Facebook电子邮件和IP地址,因为每次连接到internet时,您的IP都会发生变化。(没有密码就无法登录)

    以下是Facebook成功登录后的回复

    email: "my_email address"
    first_name: "My Name"
    gender: "male"
    id: "1508539292713828"
    last_name: "My Surname"
    link: "https://www.facebook.com/app_scoped_user_id/1508539292713828/"
    locale: "en_US"
    name: "Full name"
    timezone: 2
    updated_time: "2014-06-26T08:21:36+0000"
    verified: true
    
    您可以使用服务器端的来检查用户是否使用以下方式登录:

    // initialize SDK here
    
    // If this returns the user ID, the user is logged in
    if ($userId = $facebook->getUser()) {
        try {
            $userData = $facebook->api('/me');
        } catch (Exception $e) {
            echo $e->getMessage();
            exit();
        }
    
        $email = $userData["email"];
    
        // Do whatever
    }
    
    编辑:流程是:使用JS SDK登录用户,然后在FB.login回调中发送一个AJAX请求,检查用户是否使用PHP SDK登录

    // initialize SDK here
    
    // If this returns the user ID, the user is logged in
    if ($userId = $facebook->getUser()) {
        try {
            $userData = $facebook->api('/me');
        } catch (Exception $e) {
            echo $e->getMessage();
            exit();
        }
    
        $email = $userData["email"];
    
        // Do whatever
    }