facebook - 使用 facebook 连接问题登录

标签 facebook facebook-graph-api

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

但是,我遇到了以下问题。

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

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

对于 Facebook 用户来说,有哪一件事不会改变,我可以将其用作他的用户名?另外,我该用他的密码吗?另外,我知道如果我使用可用应用程序数据中的用户名/密码,那么使用正常机制用户也可以登录我的网站。我该如何防止这个安全漏洞?

请帮忙。

最佳答案

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

 $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 

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

关于facebook - 使用 facebook 连接问题登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982062/

相关文章:

json - 如何从图 API 中检索家庭?

facebook - 如何在用户墙上发布图库图像

javascript - Facebook 点赞按钮没有出现在我的页面上,我做错了什么?

ios - 将 Facebook 登录与 Parse 服务器一起使用时出错

ios - Facebook Graph API v1.0 token iOS SDK

javascript - 改造 Facebook fb :login-button into SDK javascript login

php - Facebook , 如何在使用 facebook sdk 登录后获取电话号码?

javascript - Facebook FB.Event.subscribe 事件未触发 :(

c++ - Facebook 的愚蠢行为中的大端和小端

php - 如何使用 Console Chrome 在 Facebook 中从 jQuery.post 发送和接收数据