【发布时间】:2016-12-22 08:45:39
【问题描述】:
我正在使用 Codeigniter 3.1.2 并尝试在我的应用中实现 Facebook 登录。当用户登录并授权我的应用程序时,我想在我的数据库中保存一些用户信息,然后创建会话。
除了创建会话外一切正常,这就是用户在成功授权我的应用后没有登录到我的应用的原因。
点击 FB 登录按钮,下面的代码正在触发
FB.login(function (response) {
if (response.status === 'connected') {
var site_url = $('#site_url').val();
$.ajax({
url: site_url + 'weapons/register',
type: 'post',
data: {
email: response.email
}
});
window.location.href = '<?php echo site_url_tr('profile'); ?>';
}
}, {scope: 'public_profile,email'});
这是我的注册方法
public function register() {
$email = $this->input->post('email');
$user = array(
'email' => $email
);
$u = $this->pm->total_item('users', 'email', $email);
if ($u < 1) {//if user not exist then create
$this->db->set('reg_date', 'NOW()', FALSE);
$user_id = $this->pm->insert_data('users', $user, TRUE);
}else{
$user = $this->pm->get_row('email', $email,'users');
$user_id = $user['id'];
}
$user_data = array(
'user_id' => $user_id,
'username' => $email,
'email' => $email,
'user_type' => 'user'
);
$this->session->set_userdata($user_data);
}
$this->session->set_userdata($user_data); 所以这是我创建会话的尝试,但它不起作用。而不是从我上面的JS 代码重定向到Profile 控制器。谢谢
我已经自动加载了
session库和驱动程序。任何想法我怎么能 当用户最授权我的应用程序时创建会话(通过 Codeigniter) 欢迎
【问题讨论】:
-
除了异步问题 -
site_url包含什么?如果其中包含使请求跨域的任何值,则除非您添加withCredentials标志,否则 cookie 将不会随请求一起发送。 -
@CBroe
site_url这里<?php echo site_url();?>是http://localhost/project_name/
标签: php jquery ajax facebook codeigniter