Estaba obteniendo un error que parece común entre los usuarios novatos de Laravel. Al usar Auth::attempt este siempre me estaba retornando falso.
Este era el código que usaba:
Por mas que intentaba el usuario no se autentificaba, y bien pues el problema era que el hash se estaba ejecutando doble, ya que había modificado el valor que se estaba almacenando con esta función:
Luego al momento de ejecutar el seed, estaba intentando pasar el password ya convertido en hash, antes de guardar en la bd:
Como ya pueden imaginar a estas altura, la solución es simple, pasar el valor del password sin el Hash::make en el seed.
Espero que a alguien mas le sirva y le evite unos cuantos minutos de dolor de cabeza.
Este era el código que usaba:
class UserTableSeeder extends Seeder{
public function run(){
User::create(array(
'username' => 'admin',
'email' => 'test@test.net',
'name'=> 'Administrator',
'password' => Hash::make('123456')
));
}
}
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 {
protected $fillable = array('email', 'username', 'password');
use UserTrait, RemindableTrait;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password', 'remember_token');
/**
* Get the unique identifier for the user.
*
* @return mixed
*/
public function getAuthIdentifier()
{
return $this->getKey();
}
/**
* 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;
}
public function setPasswordAttribute($value)
{
if ( ! empty ($value))
{
$this->attributes['password'] = Hash::make($value);
}
}
}
Por mas que intentaba el usuario no se autentificaba, y bien pues el problema era que el hash se estaba ejecutando doble, ya que había modificado el valor que se estaba almacenando con esta función:
public function setPasswordAttribute($value)
{
if ( ! empty ($value))
{
$this->attributes['password'] = Hash::make($value);
}
}
Luego al momento de ejecutar el seed, estaba intentando pasar el password ya convertido en hash, antes de guardar en la bd:
'password' => Hash::make('123456');
Como ya pueden imaginar a estas altura, la solución es simple, pasar el valor del password sin el Hash::make en el seed.
Espero que a alguien mas le sirva y le evite unos cuantos minutos de dolor de cabeza.
Muchas gracias me sirvio mucho.
ResponderEliminar