質問 > フロント機能 > パスワード再発行ができない |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
468 |
投稿日時: 2019/12/11 9:15
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: パスワード再発行ができない 2.4から移行したデータについては
NULLをセットして問題ないのではないかと思います。 (作業する前にバックアップは必須かと思いますが) ざっとソースを見てみましたが 多分、パスワードの再発行後にログインできなくなるのは パスワードの再発行時とログイン判定時のハッシュアルゴリズムの差が原因ではないかと思います。 再発行時の処理を追いかけていくと パスワードを /src/Eccube/Security/Core/Encoder/PasswordEncoder.php 104行目 でECCUBEで定義されたアルゴリズム(デフォルトはSHA256)でハッシュ化していますが
ログイン側の処理は /src/Eccube/Security/Core/Encoder/PasswordEncoder.php 73行目 がsaltに対してemptyで判定を行い、空文字やnullの場合 「sha1」でハッシュ化している為、 パスワードの不一致が発生しているものと思われます。
saltの値を空文字からnullに変更すると、パスワードの再発行が上手くいくようになるのは パスワード再発行時の流れの中で /src/Eccube/Controller/ForgotController.php 215行目 /src/Eccube/Controller/Admin/Customer/CustomerEditController.php 102行目の
のようなsaltがnullの場合、saltに新しい値をセットするという判定処理が行われている為、 (saltが空文字の時は値はセットされない) 再発行後のパスワードはログイン時に sha1ではなく、ECCUBEで定義されたアルゴリズム(デフォルトはSHA256)でハッシュ化されるようになり、 再発行時とログイン時のハッシュ化アルゴリズムが一致する為だと思います。
|
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
パスワード再発行ができない | jacopen | 2019/12/10 13:47 |
Re: パスワード再発行ができない | jacopen | 2019/12/10 15:27 |
» Re: パスワード再発行ができない | 468 | 2019/12/11 9:15 |
Re: パスワード再発行ができない | jacopen | 2019/12/11 9:39 |