Ios 使用Facebook登录到我的应用程序

Ios 使用Facebook登录到我的应用程序,ios,facebook,Ios,Facebook,我想为我的应用集成一个可选的Facebook登录。我的数据库中已经存储了一个用户配置文件。当我将当前配置文件链接到Facebook帐户时,我应该在服务器上存储什么 我想做的只是将Facebook用户的ID存储在我数据库中用户的个人资料中。这样,当有人通过facebook登录时,我可以抓取他们的facebook用户ID,并将其与数据库中的个人资料进行匹配,然后检索。还有什么我应该储存的吗 谢谢 是的,您可以存储facebook登录回调中的电子邮件和姓名 public function fb_log

我想为我的应用集成一个可选的Facebook登录。我的数据库中已经存储了一个用户配置文件。当我将当前配置文件链接到Facebook帐户时,我应该在服务器上存储什么

我想做的只是将Facebook用户的ID存储在我数据库中用户的个人资料中。这样,当有人通过facebook登录时,我可以抓取他们的facebook用户ID,并将其与数据库中的个人资料进行匹配,然后检索。还有什么我应该储存的吗


谢谢

是的,您可以存储facebook登录回调中的电子邮件和姓名

public function fb_login_back()
{
    $this->load->library('Fb_login');

    $info=$this->fb_login->login_callback();        

    if(is_array($info) && !empty($info) && isset($info["email"]) && isset($info["name"]))
    {


        if(!$this->basic->is_exist("users",array("email"=>$info["email"])))
        {
            $insert_data=array
            (
                "email"=>$info["email"],
                "name"=>$info["name"],
                "user_type"=>"Member",
                "status"=>"1",
                "add_date"=>date("Y-m-d H:i:s"),
                "package_id"=>$package_id,
                "expired_date"=>$expiry_date,
                "activation_code"=>"",
                "deleted"=>"0"
            );
            $this->basic->insert_data("users",$insert_data);
        }


        $table = 'users';
        $where['where'] = array('email' => $info["email"], "deleted" => "0","status"=>"1");

        $info = $this->basic->get_data($table, $where, $select = '', $join = '', $limit = '', $start = '', $order_by = '', $group_by = '', $num_rows = 1);


        $count = $info['extra_index']['num_rows'];

        if ($count == 0) 
        {
            $this->session->set_flashdata('login_msg', $this->lang->line("invalid email or password"));
            redirect("home/login_page");
        } 
        else 
        {
            $username = $info[0]['name'];
            $user_type = $info[0]['user_type'];
            $user_id = $info[0]['id'];

            $this->session->set_userdata('logged_in', 1);
            $this->session->set_userdata('username', $username);
            $this->session->set_userdata('user_type', $user_type);
            $this->session->set_userdata('user_id', $user_id);
            $this->session->set_userdata('download_id', time());
            $this->session->set_userdata('expiry_date',$info[0]['expired_date']);

            // for getting usable facebook api

            $this->basic->update_data("users",array("id"=>$user_id),array("last_login_at"=>date("Y-m-d H:i:s")));

            if ($this->session->userdata('logged_in') == 1 && $this->session->userdata('user_type') == 'Admin') 
            {
                redirect('facebook_ex_dashboard/index', 'location');
            }
            if ($this->session->userdata('logged_in') == 1 && $this->session->userdata('user_type') == 'Member') 
            {      
                redirect('facebook_ex_dashboard/index', 'location');
            }
        }            
    }
}
图书馆的功能就是这样

公用函数登录\u回调{ 会议开始

    $fb = new Facebook\Facebook([
      'app_id' => $this->app_id, // Replace {app-id} with your app id
      'app_secret' => $this->app_secret,
      'default_graph_version' => 'v2.2',
    ]);

    $user=array();

    $helper = $fb->getRedirectLoginHelper();
        try {
          $accessToken = $helper->getAccessToken();
           $response = $fb->get('/me?fields=id,name,email', $accessToken);
            $user = $response->getGraphUser()->asArray();
        } catch(Facebook\Exceptions\FacebookResponseException $e) {

         return $user;

        } catch(Facebook\Exceptions\FacebookSDKException $e) {
            $user['status']="0";
            $user['message']= $e->getMessage();
            return $user;
        }               

 return $user;      

}

如果您想显示用户名、个人资料图片等,则完全取决于您的用例。不,只需存储用户id即可,如果需要更多,可以存储更多。但是id足以识别用户。好的,谢谢!是的,我可能会得到电子邮件地址,只是从来没有这样做过,所以我不完全确定!唯一需要注意的是,UID是应用程序范围,因此如果您有两个不同的应用程序,则用户ID将不同:如果应用程序连接到同一业务,您仍然可以匹配用户: