2016-07-22 211 views
1

我的身份驗證函數始終在我的UserController函數中返回false,這裏是我的控制器函數。PHP Laravel身份驗證無法正常工作

public function postSignin(Request $request) 
{ 
    $userdata = array(
     'email'  => $request->input('email'), 
     'password' => $request->input('password') 
    ); 

    if (Auth::attempt($userdata)) 
    { 
     return redirect()->route('user.profile'); 
    } 
    else 
    { 
     return redirect()->back(); 
    } 
} 

,這裏是我的路線代碼

Route::post('/signin', [ 
    'uses' => '[email protected]' , 'as' => 'user.signin' 
]); 

當我輸入憑據,權威性的if部分不工作,我重定向到我的網頁被其他條件的指示...

+0

您是否使用過'php artisan make:auth'? –

+0

這可能與用戶創建有關。創建用戶時是否使用了'Hash :: make()'? – Michel

回答

1

您可能會將您的用戶密碼保存爲純文本到數據庫中,因爲使用函數時,laravel會自動對密碼進行散列比較。確保在插入時適當地將密碼與bcrypt()助手功能混合。我能想到的唯一的另一種可能性是,如果你確定你輸入正確的密碼或用戶名? bcrypt的

例如,創建一個新用戶時:

User::create([ 
    "username" => $username, 
    "password" => bcrypt($password); 
]); 

希望這有助於!

+0

我在創建用戶時使用了bcrypt函數,但仍然無法正常工作。 – tobi