EC-CUBE4 の管理画面のパスワードを紛失した場合の対処方法

2020.8.10 (月)

管理画面のパスワードを紛失した場合は、パスワードハッシュを一時的に平文に戻すことで、対処可能なようです。

$ vi app/config/eccube/packages/eccube.yaml

(27行目あたりのeccube_auth_typeをPLAINに変更)
eccube_auth_type: HMAC
↓
eccube_auth_type: PLAIN

データベースの dtb_memberテーブルから暗号化されたpasswordとlogin_idをコピーします。

login_id: USER_ID
password: xxxx4e6cxxxxf3d6xxxx1569xxxx72dcxxxx76f1xxxxea44xxxxc631xxxxf9f4

このパスワードをそのままパスワードとしてログインします。
管理画面にアクセスしてログインします。もしログインに失敗した場合は、画面をリロードするか、.envのECCUBE_AUTH_MAGICの値を確認してください。ECCUBE_AUTH_MAGICが変更されているとログインできません。
ログインできたら、ログインしたままの状態で、先程のeccube_auth_typeをHMACに戻します。
それから、
src/Eccube/Form/Type/Admin/ChangePasswordType.phpの52行目「new UserPassword(),」をコメントアウト

$ vi src/Eccube/Form/Type/Admin/ChangePasswordType.php

//new UserPassword(),

一応管理画面をリロードしておきましょう。
それから、管理画面よりパスワードを変更します。
現在のパスワードは先程の暗号化されたpasswordを入力します。新しいパスワードは任意で設定します。
パスワードの変更が終わったら、new UserPassword(),のコメントアウトを外して完了です。