Laravel 5: Diagnostika resetování hesla Token je neplatný chyba

hlasů
1

Používám auth systém laravel rozeslat uvítací e-mail, aby všechny nové uživatele. Většinou to funguje dobře, ale měl jsem ojedinělé případy, kde získám „resetování hesla tokenu je neplatný“ Chyba.

Aby bylo možné diagnostikovat toto bych chtěl mít možnost ručně porovnávat řetězce, které jsou k dispozici v URL uživatele (tj tokenu, že jsem odeslat e-mailem je) proti hodnotě uložené v password_resets.tokenpoli. Jak to mohu udělat?

Token v URL se zdá být 64 hex znaků. Token v databázi začíná $2y$10$, takže předpokládám, že je výstup z password_hashfunkce. Jak mohu převést z jednoho do druhého?

Položena 07/11/2018 v 23:36
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Alternativou je zkontrolovat, zda jeden je ekvivalentní k druhému (to znamená, je-li jeden je čárkovaná / unhashed verze druhého). Chcete-li to provést, můžete použít funkci Hash :: kontrola (). Z dokumentů :

Ověření hesla proti hash

Způsob přihlášení vám umožní ověřit, zda daný prostý textový řetězec odpovídá danému hash. Pokud však používáte LoginControllersoučástí laravel, pravděpodobně nebudete muset použít přímo, protože tento řadič automaticky volá tuto metodu:

if (Hash::check('plain-text', $hashedPassword)) {
    // The passwords match...
}
Odpovězeno 08/11/2018 v 00:58
zdroj uživatelem

hlasů
0

V první řadě chci říci token v URL není výstup z password_hashfunkce.

Porovnat token v URL a co je vytvářet nebo skladovat, můžete zjistit z databáze. Zkontrolujte password_resetstabulku, zkontrolujte e-mail uživatele, hledat tokenu, který odpovídá této e-mailové adresy.

Token v URL, by měly být stejné jako to, co je v databázi pro e-mailovou adresu.

Odpovězeno 07/11/2018 v 23:54
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more