Проблема с password_verify

120
02 декабря 2020, 18:40

есть проблема при проверке пароля при первой проверке пароля сценарий стопорится на password_verify и урл принимает вид http://site/login?login=admin&password=12345, хотя var_dump(password_verify($this->pass_form, $this->users['password'])); дает true, но если обновить страницу то авторизация срабатывает

private function load_user($user_login)
{
    $this->users = $this->user_login->login_user($user_login);
    $this->id    = $this->users['id'];
    $this->group = $this->users['user_group'];
}
private function load_form()
{
    $this->login     = htmlspecialchars($this->request->getVar('login'));
    $this->pass_form = htmlspecialchars($this->request->getVar('password'));
    $this->session->set(['name' => $this->login]);
}
private function verify_pass()
{
    if ($this->pass_form == '') {
        return redirect()->to('login');
    } else {
        if (password_needs_rehash($this->users['password'], PASSWORD_DEFAULT)) {
            $this->user_login->update($this->id, ['password' => $this->pass_hash]);
        }
        if (password_verify($this->pass_form, $this->users['password'])) {
            setcookie('id', $this->id, strtotime("+30 day"));
            setcookie('group', $this->group, strtotime("+30 day"));
            setcookie('name', $this->login, strtotime("+30 day"));
            setcookie('access', 1, strtotime("+30 day"));
            return redirect()->route('main');
        } else {
            return $this->logout();
        }
    }
}
function user_login()
{
    $data = [
        'title' => 'Вход в панель управления',
    ];
    $this->dashboard('login', $data);
    $this->load_form();
    $this->pass_hash = password_hash($this->pass_form, PASSWORD_DEFAULT);
    $this->load_user($this->login);
    $this->verify_pass();
}
function login()
{
    if ( ! isset($_COOKIE['access'])) {
        $this->user_login();
    } else {
        return redirect()->to('main');
    }
}
function index()
{
    $data = [
        'title'     => 'Административная часть',
        'countUser' => $this->user_login->countAll(),
    ];
    if ( ! isset($_COOKIE['access'])) {
        var_dump('error');
        return $this->logout();
    } else {
        $this->dashboard('main', $data);
        var_dump('access');
    }
}
function logout()
{
    setcookie('id', null, -1, '/');
    setcookie('name', null, -1, '/');
    setcookie('group', null, -1, '/');
    setcookie('access', null, -1, '/');
    return redirect()->to('/login');
}
READ ALSO
Установка ImageMagick на OpenServer

Установка ImageMagick на OpenServer

Кто знает как использовать ImageMagick в OpenServer? Скачал OpenServer вместе с ImageMagick, но при попытке им воспользоваться выдает ошибку Fatal error: Uncaught Error: Class 'Imagick'...

136
Подсказки по местонахождению скрипта в VS Code

Подсказки по местонахождению скрипта в VS Code

Как в VS Code сделать возможность по наведению курсором мыши на какую-либо функцию, объект , чтобы при этом как в sublime text выводилась подсказка...

132
Как отдать файл на скачивание в фреймворке yii2?

Как отдать файл на скачивание в фреймворке yii2?

У меня есть такой пост запрос

146