Znalazłem problem. kiedy to zrobiłem:
echo strlen($hash)
wypisał 90, co jest dziwne, ponieważ zdecydowanie nie było spacji na końcu, kiedy wypisywałem wiadomość o sukcesie/porażce, a pole ma długość varchar 255
Dodałem ten wiersz:
$hash = substr( $hash, 0, 60 );
A teraz działa dobrze.
To dziwne, że nikt inny nie spotkał się z tym problemem. Istnieją podobne posty na temat password_verify, ale żaden z nich nie wymagał tego typu konwersji ani żadnej konwersji w tym zakresie:
php password_verify nie działa
password_verify php nie pasuje
http://forums.phpfreaks.com/topic/ 283407-need-help-with-password-verify/
Korzystanie z funkcji password_hash i password_verify w PHP 5.5
Jedną rzeczą, która mnie niepokoi, jest to, że uniemożliwia to kompatybilność kodu. Skąd będę wiedzieć, że hash ma długość 60 znaków, gdy zmieni się wartość domyślna?