2013-03-30 142 views
1

所以我看過如何註冊以及如何使用laravel登錄的信息的加載和加載,我已讓我的用戶成功註冊&分別成功登錄。但是,當你註冊時,它並不認爲你已經登錄,不管我嘗試了什麼,我似乎無法讓它工作。Laravel註冊不會登錄用戶

這是我的登錄名:

$userdata = array(
    'username'  => Input::get('email'), 
    'password'  => Input::get('password') 
); 

if (Auth::attempt($userdata)) { 
     return Redirect::to('home'); 
    } else { 
     return Redirect::to('login') 
     ->with('login_errors', true); 
    } 

如預期,沒有任何問題,其中一期工程。

這裏是我的寄存器:

$user = new User; 
$user->username = Input::get('username'); 
$user->email = Input::get('email'); 
$user->password = Hash::make('password'); 
$user->save(); 

    return Redirect::to('home'); 

這也適用,因爲在創建用戶,然後用戶可以選擇登錄但是如果我添加了完全相同的Auth::attempt(),它失敗了,所有其他的。 Auth::check() s檢查嘗試失敗。它在做什麼錯了?

+0

是否顯示任何錯誤消息? –

+0

不,我只是沒有登錄 – gardni

回答

1

如果Auth :: attempt()期望像你提到的數組,那麼爲什麼不直接取回剛剛創建的$ user作爲數組,並在重定向之前將它傳遞給try方法?再次,不熟悉Laravel但你的代碼示例基於我認爲這應該工作..這樣或許真的:

$user = new User; 
$user->username = Input::get('username'); 
$user->email = Input::get('email'); 
$user->password = Hash::make(Input::get('password')); 
$user->save(); 

$userdata = array(
    'username'  => $user->username, 
    'password'  => $user->password 
); 

if (Auth::attempt($userdata)) { 
     return Redirect::to('home'); 
    } 
+0

登錄後沒有進入用戶,但你誤解了他,第一個例子他顯示登錄,第二個登記冊,他只是表明,工程,你提供的是,你綁註冊和登錄在一起 –

+0

驗證::嘗試期望一個數組,如果我通過$用戶它將錯誤 – gardni

+0

@LeventeNagy我想他希望他們登錄後登記 – bruchowski

1

哈希::使()不獲取給定參數的值公佈。

而不是Hash::make('password');,請嘗試Hash::make(Input::get('password'));。 我的想法是,您的用戶現在擁有密碼「密碼」,而不是他們在註冊表中填寫的內容。

+0

你是對的,如果我把密碼作爲密碼它的作品,然而改變這是你建議不會改變這一點。如果我把一個密碼以外的密碼它不登錄,任何建議? – gardni