2013-08-24 3 views
2

В Laravel4, я написал следующий код в маршрутах, но всегда перенаправляет меня на страницу входа. Я гугле и нашел его на переполнение стека слишком и пытались все решения, но не succeeded.I уверен, что это будет нелепая ошибка, но любезно отслеживать его out.Thank YouОшибка авторизации входа в laravel 4

Маршруты:

Route::post('login', function() 
    { 
      $user = array(
     'username' => Input::get('username'), 
     'password' => Hash::make(Input::get('password')) 
    ); 
      /* Store entered username and password in an array named as 'user' */ 
      print_r($user); 

      if (Auth::attempt($user)) 
      { 
       return Redirect::route('home')->with('flash_notice', 'You are successfully logged in.'); 
       /* Authentication Success!!..Redirect user to home page */ 
      } 
      else 
      { 
       return Redirect::route('login') 
        ->with('flash_error', 'Your username/password combination was incorrect.')->withInput(); 
          /* Authentication failure!! lets go back to the login page */ 
      } 
    }); 

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

<?php 

use Illuminate\Auth\UserInterface; 
use Illuminate\Auth\Reminders\RemindableInterface; 

class User extends Eloquent implements UserInterface, RemindableInterface 
{ 
    /** 
    * The database table used by the model. 
    * 
    * @var string 
    */ 
    protected $table = 'users'; 

    // public $timestamps = false; 

    /** 
    * The primary key of the table. 
    * 
    * @var string 
    */ 
    protected $primaryKey = 'id'; 

    /** 
    * The attributes excluded from the model's JSON form. 
    * 
    * @var array 
    */ 
    protected $hidden = array('password'); 

    /** 
    * Get the password for the user. 
    * 
    * @return string 
    */ 
    public function getAuthPassword() 
    { 
     return $this->password; 
    } 

    /** 
    * Get the e-mail address where password reminders are sent. 
    * 
    * @return string 
    */ 
    public function getReminderEmail() 
    { 
     return $this->email; 
    } 



/** 
* Get the unique identifier for the user. 
* 
* @return mixed 
*/ 
public function getAuthIdentifier() 
{ 
    return $this->getKey(); 
} 

/** 
* Get the password for the user. 
* 
* @return string 
*/ 

}

Сеялка Пользователь:

<?php 
class UserSeeder extends Seeder { 

    public function run() 
    { 
     DB::table('users')->delete(); 
     return array('table'=>'users', 
     array(
       'username' => 'admin', 
       'password' => 'admin' 
     ), 
     ); 
    } 
} 

ответ

0

Когда вы попросите Auth-класс попытаться войти в систему, вы передадите имя пользователя и пройдете, как есть. Но если вы посмотрите на метод, он сначала будет хэш-пароль, чтобы он был защищен, а затем сопоставил его с вводом базы данных. Когда вы храните его, из вашей текущей реализации его хешируется.

Как уже говорилось выше, вы должны сделать это изменение в вашей сеялке:

array(
    'username' => 'admin', 
    'password' => Hash::make('password') 
), 

Хотя я не очень уверен, что, если так, как вы используете сеялка правильно синтаксисом, но если он работает, только хеш пароль там.

+0

Я hashed он все еще не работает Проблема в auth: попытка – Navya

0

Необходимо ввести свой пароль.

array(
    'username' => 'admin', 
    'password' => Hash::make('password') 
), 

Дополнительную информацию можно получить в the docs.

+0

Я хэшируюсь его до сих пор не работает Проблемы в AUTH: попытка – Navya

+0

Спасибо всем , но я, наконец, получил ошибку не использовать хэш :: сделать пароль в AUTH :: попытка (как когда-то я хэшируюсь в сеялке) – Navya

+0

@Navya, как вы решили свою проблему? Я в подобной ситуации. –

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

  • Нет связанных вопросов^_^