2013-01-18 36 views
0

我是laravel的新手,並試圖處理多個社交登錄到我的網站。OneAuth多個登錄

到目前爲止,我已經嘗試以下, 安裝了OneAuth,並能夠獲得所有過去的身份驗證,直到它進入我的控制器的註冊部分。當我在客戶端表中查找數據庫時,我將user_id字段設置爲0.因此,根據我的理解,我認爲這是將同一用戶鏈接到多個提供者的外鍵。是的,這讓我興奮。

所以這裏是我卡住的地方。讓我們說,在Facebook登錄後,我渲染寄存器視圖,其中email_id被填充從facebook返回。用戶填寫所有必填字段並填充用戶表。現在,我如何使用剛創建的用戶表中的ID更新OneAuth客戶端表user_id字段。

我想知道我在做什麼是正確的?如果是的話,我該如何解決給定的問題。

更新:

我們可以使用此事件同步表。

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

回答

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));