我是laravel的新手,并尝试在我的网站上处理多个社交登录。
到目前为止,我试过以下, 安装了OneAuth并且能够通过身份验证,直到它进入我的寄存器控制器部分。当我在客户端表中查找DB时,我将user_id字段设置为0.所以我从我的理解中假设这是一个将同一用户链接到多个提供者的外键。是的,这让我很兴奋。
所以这就是我被卡住的地方。让我们说在facebook登录后我渲染注册视图,其中填充了从facebook返回的email_id。用户填写所有必填字段,并填充Users表。现在,我如何使用刚刚创建的用户表中的id更新OneAuth客户端表user_id字段。
我想知道我在做什么是正确的?如果是,我该如何解决给定的问题。
更新
我们可以使用此活动同步表格。
Event::fire('oneauth.sync', array( $user->id ) );
答案 0 :(得分:1)
试试这个:
$user = new User;
if ($_POST)
{
// it a POST Request, you should validate the form
$user->nickname = Input::get('username');
$user->password = Hash::create(Input::get('password'));
$user->email = Input::get('email');
} else {
$user_data = Session::get('oneauth');
$existing_user = User::where_uid($user_data['info']['uid'])->first();
if (is_object($existing_user)){
$user = $existing_user;
$user->setUserData($user_data);
} else {
$user->setUserData($user_data);
}
}
$user->save();
Auth::login($user->id, true);
Event::fire('oneauth.sync', array($user->id));