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