Password Migrations

Description

Automatically upgrade password hashes by using PasswordUpgraderInterface interface

Syntax

config/packages/security.yaml

security:
# …
encoders:
App\Entity\User:
algorithm: ‘argon2i’
migrate_from: ‘bcrypt’

// src/Repository/UserRepository.php
namespace App\Repository;

// …
use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;

class UserRepository extends EntityRepository implements PasswordUpgraderInterface
{
// …

public function upgradePassword(UserInterface $user, string $newEncodedPassword): void
{
    // this code is only an example; the exact code will depend on
    // your own application needs
    $user->setPassword($newEncodedPassword);
    $this->getEntityManager()->flush($user);
}

}