CakePHP 3.7.6 LegacyPasswordHasher не работает - PullRequest
0 голосов
/ 16 апреля 2019

У меня проблема с компонентом аутентификации cakephp. Я следую этому руководству, чтобы создать legacypasswordhasher https://book.cakephp.org/3.0/en/controllers/components/authentication.html Я загружаю класс в контроллер приложения следующим образом:

$this->loadComponent('Auth', [
        'authenticate' => [
            'Form' => [
                'passwordHasher' => [
                    'className' => 'Legacy',
                ]
            ]
        ]
    ]);

, и я создалкласс legacypasswordhelper в src / Auth выглядит следующим образом:

namespace App\Auth;

use Cake\Auth\AbstractPasswordHasher;

class LegacyPasswordHasher extends AbstractPasswordHasher
{

public function hash($password)
{
    return sha1($password);
}

public function check($password, $hashedPassword)
{
    return sha1($password) === $hashedPassword;
}
}

?>

, но если я вхожу в мою форму, компонент auth не запускает функции legacypassword.Я использую отладки в функции хеширования и проверки, но она никогда не показывается.я надеюсь, у кого-нибудь есть решение

1 Ответ

0 голосов
/ 16 апреля 2019

хорошо, я решаю эту проблему. я не знал, что торт работает только тогда, когда вы используете функцию формы торт. я работал с нормальной формой

<form method="post" action="/users/login">

но вам действительно нужно

<?php echo $this->Form->create(); ?>

используйте его для работы устаревшей функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...