2016-07-22 10 views
1

Моя функция auth всегда возвращает false в моей функции UserController, вот моя функция контроллера.PHP Laravel auth не работает должным образом

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 часть AUTH не работает, и я перенаправлены на моей странице в соответствии с указаниями условия еще ...

+0

Вы использовали для этого 'php artisan make: auth'? –

+0

Это может быть связано с созданием пользователя. Вы использовали 'Hash :: make()' при создании пользователя? – Michel

ответ

1

Возможно, вы сохраняете свои пароли пользователей в виде обычного текста в базе данных, потому что при использовании функции Auth::attempt() laravel автоматически хэширует пароль для сравнения. Удостоверьтесь, что при правильной установке пароля с помощью вспомогательной функции bcrypt(). Единственная возможность, о которой я могу думать, - это, если вы уверены, что правильно ввели пароль или имя пользователя?

Пример Bcrypt при создании нового пользователя:

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

Надеется, что это помогает!

+0

Я использую функцию bcrypt при создании пользователя, но все еще не работает. – tobi