使用facebook连接问题登录

使用facebook连接问题登录,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我想在我的网站上实现facebook connect。我已使用oauth api获取应用程序的权限请求 然而,我有以下问题 如果用户第一次使用facebook connect登录我的网站,我需要为他(在我的网站上)创建一个新的用户名/密码,以便他能够在我的网站上冲浪并设置所有会话变量。但是,我应该使用什么作为用户名/密码? 我知道facebook用户可以更改他的电子邮件地址 我如何处理第二次或第三次使用facebook connect登录的用户(他们已经是我网站的成员)?我不需要在我的网站上为他

我想在我的网站上实现facebook connect。我已使用oauth api获取应用程序的权限请求

然而,我有以下问题

如果用户第一次使用facebook connect登录我的网站,我需要为他(在我的网站上)创建一个新的用户名/密码,以便他能够在我的网站上冲浪并设置所有会话变量。但是,我应该使用什么作为用户名/密码? 我知道facebook用户可以更改他的电子邮件地址

我如何处理第二次或第三次使用facebook connect登录的用户(他们已经是我网站的成员)?我不需要在我的网站上为他们创建一个用户,因为他第一次登录时已经创建了这个用户。我是否检查电子邮件地址以查看数据库中是否存在facebook用户的电子邮件地址?此外,同样的问题也随之而来,facebook用户可以更改他的电子邮件地址

对于一个facebook用户来说,我可以用什么作为他的用户名而不会改变?还有,我用什么作为他的密码?此外,我知道如果我使用可用应用程序数据中的用户名/密码,那么使用正常机制,用户也可以登录到我的网站。我如何防止这个安全漏洞


请提供帮助。

Facebook提供用户的唯一ID。您可以使用此信息识别用户。

我使用Facebook在回调中发送的信息(Facebook唯一用户ID或普通ID),然后检查用户是否在我的数据库中,如果不是,我插入他,但我将其他密码或用户电子邮件留空(您也可以请求该信息检查php api中的第418行并添加“'req_perms'=>'email'”),因为我可以在它们再次连接时检索该数据,然后像所有方式一样设置会话。 如果用户更改了电子邮件,只需在每次登录时检查并更新数据。 例如:


非常感谢,伙计。你的回答真的很有帮助。我几乎放弃了这一点。:)如果你还有更多问题,我们都会在这里帮助你;)
 $facebook = new Facebook(array(
      'appId'  => 'xxxxxxxxx',
      'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
      'cookie' => true,
    ));
    $session = $facebook->getSession();

    $me = null;
    // Session based API call.
    if ($session) {
      try {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

      } catch (FacebookApiException $e) {
        error_log($e);
      }
    }


    // login or logout url will be needed depending on current user state.
    if ($me) {
      $logoutUrl = $facebook->getLogoutUrl();

    } else {
      $loginUrl = $facebook->getLoginUrl();
    }
    if ($me) {

    if (!isset($_SESSION["usr_id"])){
     $_SESSION["usr_id"] =$me['id'];
      $_SESSION["usr_name"]=$me['name'];

// or do your sql verification and then set the sessions 

        }
    }
    /////////////////////////////////////////////