/ / Laravel 5.2: L'authentification d'authentification :: tentative renvoie false - php, laravel, laravel-5.2

Laravel 5.2: L'authentification d'authentification :: tentative renvoie false - php, laravel, laravel-5.2

Je travaille sur le module d'authentification, j'ai ce problème étrange, Auth::attempt renvoie false, où mon nom d'utilisateur et mon mot de passe sont corrects.

Le même question est demandé ici aussi mais cela ne résout pas mes problèmes et cette question concerne laravel 4, j’ai essayé leurs méthodes mais ne fonctionne toujours pas.

J'ai le code suivant dans mon contrôleur:

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

La partie restante revient:

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

Ce qui signifie que name et le mot de passe est correct.

J'utilise laravel 5.2 et dans mon users déposer le mot de passe n'est pas haché et il n'y a pas remember_token signifie que j'ai créé le user directement.

Réponses:

1 pour la réponse № 1

cela ne fonctionnera pas car auth :: tentative convertit le mot de passe en hachage à l'aide de bcrypt, et recherche cette correspondance dans la table users

En bref, le mot de passe doit être un hachage stocké dans la table de la base de données pour que auth :: try soit efficace.

c'est pourquoi votre condition if () échoue.

ci-dessous est de laravel 5.2 docs

La méthode de tentative accepte un tableau de clés /paires de valeur comme son premier argument. Les valeurs du tableau seront utilisées pour trouver l'utilisateur dans votre table de base de données. Ainsi, dans l'exemple ci-dessus, l'utilisateur sera récupéré par la valeur de la colonne email. Si l'utilisateur est trouvé, le Le mot de passe haché stocké dans la base de données sera comparé au valeur de mot de passe hachée passée à la méthode via le tableau. Si les deux Les mots de passe hachés correspondent à une session authentifiée sera démarrée pour l'utilisateur.

La méthode de tentative retournera la valeur true si l'authentification a réussi. Sinon, false sera retourné.


2 pour la réponse № 2

la méthode de tentative hachait le mot de passe avant de la comparer à la base de données, ce qui signifie que si le mot de passe de votre base de données n'est pas haché, il ne correspondra pas.