2015-01-09 2 views
2

Я новичок в Larave, и я сделал регистрационную форму, которая не работает, я искал много об этой проблеме, и я нашел эти вопросы и ответы, которые не работают для меня:Laravel Аутентификация не работает и никогда не возвращает истину

  1. Question 1
  2. Question 2
  3. Question 3

Я прочитал эти 3 вопроса и снова не работает:

Это мои пользователи стол:

идентификатор | имя пользователя | пароль | запомнить | created_at | updated_at

1 | [email protected] | testpass1

Это мой Пользователь Модель:

<?php 
use Illuminate\Auth\UserTrait; 
use Illuminate\Auth\UserInterface; 
use Illuminate\Auth\Reminders\RemindableTrait; 
use Illuminate\Auth\Reminders\RemindableInterface; 
class User extends Eloquent implements UserInterface, RemindableInterface { 
    use UserTrait, RemindableTrait; 
    public static $auth_rules=[ 
     'email'=>'required|email', 
     'password'=>'required|between:3,18' 
    ]; 
    protected $hidden = array('password', 'remember_token'); 
} 

Это мой маршрут:

Route::group(array('prefix'=>'admin','before'=>'Auth'),function(){ 
    Route::resource('posts','AdminPostsController', array('except'=>array('show'))); 
}); 

Это фильтр (Auth):

Route::filter('Auth', function() 
{ 
    if (Auth::guest()) 
    { 
     if (Request::ajax()) 
     { 
      return Response::make('Unauthorized', 401); 
     } 
     else 
     { 
      return Redirect::guest('admin/login'); 
     } 
    } 
}); 

и это AdminAuthController, что маршрут передачи данных от входа в AdminAuthController @ postLogin:

//This is postLogin method: 
    public function postLogin(){ 
    //Showing username and password 
     echo 'Username:'.Input::get('email').'<br/>'; 
    echo 'Password:'.Input::get('password').'<br />'; 

    //If username and password: return true 
    dd(Auth::attempt(array('username'=>Input::get('email'),'password'=>Input::get('password') ))); 
    } 

Это то, что Laravel вернуться в браузере: http://i.stack.imgur.com/9cq61.png

+0

возможно дубликат [Laravel Auth :: попытка() всегда ложно?] (Http://stackoverflow.com/questions/18006597/laravel-authattempt-always-false) –

+0

@MattBurrow Да, я этого не видел. Спасибо –

ответ

1

пароль в таблице должен быть хешированный!

Вы можете использовать Hash::make('password') для генерации хэша пароля. Если вы хотите обновить БД вручную в развитии вы можете использовать artisan tinker быстро сгенерировать хеш:

php artisan tinker 
> echo Hash::make('your-secret-password'); 

Скопируйте выход и обновить поле пароля на дб.

Примечание поле БД должен быть длиной не менее 60 символов

+0

Вы имеете в виду копировать выходные данные и обновлять мое поле пароля? –

+0

Да точно. Результат должен выглядеть примерно так: '$ 2y $ 10 $ xdWRiQr6TQxj/4Ll/6iAfeTYcsVrH1MwvFpNLz3dpX/8M3t8h1W42' – lukasgeiter

+0

Действительно действительно спасибо. Надеюсь, вы лучшие. Я буду отмечать зеленую магическую кнопку, чтобы сказать Stackoverflow это мой выбранный ответ –

Смежные вопросы