Je crée une API pour une base de données existante. J'ai d'abord remarqué le problème quand j'ai vu que Auth :: try renvoyait toujours false. Depuis que j'ai mis en place mon propre fournisseur de hachage SHA1, j'ai pensé que cela pourrait être le problème.Pourquoi Laravel Auth :: check retourne toujours false?
Mais j'ai essayé Hash :: make ('test') et il m'a donné 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'. Puis j'ai essayé Hash :: make ($ client-> pwd) et ça m'a donné le même hash. Corrigez jusqu'à présent. Enfin, j'ai fait
if (Hash::check('test', $cli->pwd))
{
[...]
}
et il est retourné faux. D'après les apparences, le problème n'est pas mon fournisseur de hachage et je suppose que c'est aussi la raison pour laquelle la tentative Auth :: échoue. Quelqu'un peut-il me dire pourquoi?
Auth :: attempt() va hacher le mot de passe lui-même, il est donc probable qu'il refasse votre mot de passe "hashed" – Laurence
Avez-vous intégré votre fournisseur de hachage personnalisé dans Auth? Parce que ce hachage ne ressemble pas à un hachage BCrypt. –
Oups, erreur de ma part. Je l'ai changé en if (Hash :: check ('test', $ cli-> pwd)). Toujours en revenant faux. Et oui je pense que j'ai bien compris l'intégration, c'est SHA1 car mes mots de passe de base de données ne sont pas des hachages bcrypt. –