Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查密码是否与symfony 4相同_Php_Symfony_Passwords_Change Password - Fatal编程技术网

Php 检查密码是否与symfony 4相同

Php 检查密码是否与symfony 4相同,php,symfony,passwords,change-password,Php,Symfony,Passwords,Change Password,我想允许用户从个人空间更改密码。为此,他必须连接,所以要知道他的密码。 必须按照以下步骤更改are密码: 输入旧密码 输入新密码并确认 除了我有一个我根本不明白的问题。我无法通过密码比较步骤。 我检查输入的旧密码是否与数据库中的密码不同,如果是,我会发送一个错误。否则,我会将新密码发送到数据库 你觉得怎么样?这是正确的方法吗 我的控制器 我的实体 实际上,我们必须从PHP7.2转到7.3。在Symfny 4.3.2中,密码加密是自动完成的。它选择了目前最常用和最安全的加密算法,但要使其正常工

我想允许用户从个人空间更改密码。为此,他必须连接,所以要知道他的密码。 必须按照以下步骤更改are密码:

  • 输入旧密码
  • 输入新密码并确认

除了我有一个我根本不明白的问题。我无法通过密码比较步骤。 我检查输入的旧密码是否与数据库中的密码不同,如果是,我会发送一个错误。否则,我会将新密码发送到数据库

你觉得怎么样?这是正确的方法吗

我的控制器

我的实体


实际上,我们必须从
PHP7.2
转到
7.3。
Symfny 4.3.2
中,密码加密是自动完成的
。它选择了目前最常用和最安全的加密算法,但要使其正常工作,您必须更新php

如果你使用docker,你必须这样做

FROM php:7.3-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd
不要忘记mysqli扩展

RUN docker-php-ext-install mysqli pdo pdo_mysql

RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd

“除了我有一个我根本不明白的问题”。这是什么?尝试使用而不是
密码\u验证
并检查最近的密码。
security:
    role_hierarchy:
        ROLE_PRO: ROLE_USER
        ROLE_ADMIN: [ROLE_USER, ROLE_PRO]
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    encoders:
        App\Entity\User:
            algorithm: auto
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    providers:
        in_memory: { memory: ~ }
        in_database:
            entity:
                class: App\Entity\User
                property: email
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: true
            remember_me:
                secret:   '%kernel.secret%'
                lifetime: 604800 # 1 week in seconds
                path:     /

            provider: in_database

            form_login:
                login_path: account_login
                check_path: account_login
                default_target_path: account_index

            logout:
                path: account_logout
                target: account_login

            # activate different ways to authenticate
            # https://symfony.com/doc/current/security.html#firewalls-authentication

            # https://symfony.com/doc/current/security/impersonating_user.html
            # switch_user: true

    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/account, roles: ROLE_USER }
        # - { path: ^/profile, roles: ROLE_ADMIN }
FROM php:7.3-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd
RUN docker-php-ext-install mysqli pdo pdo_mysql

RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd