我正在尝试使用CodeIgniter在我的网站上将facebook登录集成到localhost上。我在控制器costprices_path
中创建了一个fb_login
函数,其中还定义了不同的函数。问题是,当我从user.php
调用fb_login
函数时,它不起作用,在login_view.php
在单独的控制器中定义并调用时,其功能随后起作用......
以下是代码:
user.php(controller)
fb_login
但这适用于fblogin.php(控制器)
public function fb_login(){
$this->load->library('facebook');
$user = $this->facebook->getUser();
echo $user;
if ($user) {
try{
$user_profile = $this->facebook->api('/me?locale=en_US&fields=name,email');
}
catch (FacebookApiException $e){
$user = null;
}
}
else{
$this->facebook->destroySession();
}
if ($user) {
$logout_url = site_url('user/logout');
$user_data =array(
'user_id' => $user_profile['id'],
'username' => $user_profile['name'],
'logged_in' => true
);
$this->session->set_userdata($user_data);
$this->load->view('profile_view');//,$logout_url,$user_profile);
}
else{
$login_url = $this->facebook->getLoginUrl(array(
'redirect_uri' => site_url('user/login_page'),
'scope' => 'email'
));
$this->load->view('login_view',$login_url);
}
}
答案 0 :(得分:0)
在Facebook Developer中,将“网站网址”设置为您的本地地址“http://localhost/[yourSiteName]”。
Facebook不会重定向回您的服务器。 FB JavaScript插件可以在浏览器的上下文中运行,它知道“localhost”指向的位置。
完成后不要忘记将其更改回您的域名。
答案 1 :(得分:0)
我认为这与您正在使用的网址/路由有关,因为它来自一个控制器,而不是另一个控制器。请确保您正在调用正确的网址/controller/method
,而不仅仅是将其称为/method
,这样会使用相应的控制器方法。