0

我是 laravel 的新手,并试图处理多个社交登录到我的网站。

到目前为止,我已经尝试过安装 OneAuth 并且能够通过身份验证,直到它进入我的控制器注册部分。当我在客户端表中查看 DB 时,我将 user_id 字段设置为 0。所以我假设根据我的理解,这是一个将同一用户链接到多个提供程序的外键。是的,这就是让我兴奋的原因。

所以这就是我卡住的地方。可以说,在 facebook 登录后,我呈现注册视图,其中填充了从 facebook 返回的 email_id。用户填写所有必填字段并填充用户表。现在我如何使用刚刚创建的用户表中的 id 更新 OneAuth 客户端表 user_id 字段。

我想知道我所做的是否正确?如果是,我该如何解决给定的问题。

更新:

我们可以使用这个事件来同步表。

Event::fire('oneauth.sync', array( $user->id )  );
4

1 回答 1

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));      
于 2013-04-09T20:06:56.897 回答