私はCodeigniter 3.1.2を使用しており、自分のアプリでFacebookのログインを実装しようとしています。ユーザーがログインし、私のアプリケーションを承認した後、私は自分のDBにユーザー情報を保存してからセッションを作成したいと思う。セッションがjquery ajaxによって作成されていません
セッションの作成を除いてすべてうまく動作します。これは、私のアプリを正常に認証した後、ユーザーが私のアプリにログインしていない理由です。 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'});
を発射された私のregisterメソッドは、そう、これはセッションを作成するために私のattempであり、その動作していない
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
ライブラリとドライバを自動読み込みしました。ユーザーが自分のファイルに$this->load->library('session');
を含めるか、またはそれを自動的にロードを確認してください が
非同期の問題とは別に、「site_url」には何が含まれていますか?これにリクエストがクロスドメイン化された値が含まれていた場合、 'withCredentials'フラグを追加しない限り、リクエストとともにクッキーは送信されません。 – CBroe
@CBroe 'site_url' here' <?php echo site_url();?> 'http:// localhost/project_name /' –