気に入らない方法でハッシュ化されたパスワードを含む古いユーザー データベースがあります。ログイン時に、これらのハッシュが新しいハッシュ形式 (bcrypt) に更新されることを望みます。
FOSUserBundle を使用してユーザーを管理し、Elnur の bcrypt バンドルをセキュリティ エンコーダーとして使用しています。この種のアルゴリズムを追加するためにパスワードチェックメカニズムにプラグインする簡単な方法はありますか?
if passwordHash is using old format
oldFormatHash := hash userGivenPassword in the old way
if oldFormatHash == passwordHash
login ok
update password in database with new hash format
else
login ko
else
use default
現在のセキュリティ エンコーダーを拡張することを考えましたが、isPasswordValid
メソッドには確認するアカウントの ID (またはその正規名) がないため、更新部分は利用できません。