/ / Laravel 5.2: Authentication auth :: try devuelve false - php, laravel, laravel-5.2

Laravel 5.2: Authentication auth :: try devuelve false - php, laravel, laravel-5.2

Estoy trabajando en el módulo de autenticación, tengo este problema extraño, Auth::attempt devuelve falso, donde mi nombre de usuario y contraseña es correcta.

Lo mismo pregunta Se pregunta aquí también, pero eso no está abordando mis problemas y esa pregunta es sobre laravel 4, he intentado sus métodos pero aún no funciona.

Tengo el siguiente código en mi controlador:

$user = array(
"name" => Input::get("username"),
"password" => Input::get("password")
);
if (Auth::attempt($user)) {
return "ok.";
} else {
dd($user);
}

La otra parte devuelve:

array:2 [▼
"name" => "ali"
"password" => "ali"
]

Lo que significa el name y la contraseña es correcta.

Estoy usando laravel 5.2 y en mi users tabla la contraseña no está hash y no hay remember_token significa que he creado el user directamente.

Respuestas

1 para la respuesta № 1

esto no funcionará porque auth :: try convierte la contraseña en hash usando bcrypt, y busca ese hash en la tabla de usuarios para que coincida.

en resumen, la contraseña debe ser un hash almacenado en la tabla de la base de datos para que auth :: try funcione.

es por eso que su condición if () está fallando.

a continuación es de laravel 5.2 docs

El método de intento acepta una matriz de clave /pares de valores como su primer argumento. Los valores en la matriz se utilizarán para encontrar al usuario en Su tabla de base de datos. Así, en el ejemplo anterior, el usuario será recuperado por el valor de la columna de correo electrónico. Si se encuentra el usuario, el La contraseña almacenada en la base de datos se comparará con la el valor de contraseña hash pasado al método a través de la matriz. Si los dos las contraseñas con hash que coincidan con una sesión autenticada se iniciarán para el usuario.

El método de intento devolverá verdadero si la autenticación fue exitosa. De lo contrario, se devolverá falso.


2 para la respuesta № 2

el método de intento hash la contraseña antes de compararla con la base de datos, lo que significa que si la contraseña en su base de datos no está hash, no coincidirá.