Laravel - トラブルシュート - Laravel 12 - password does not use the Bcrypt algorithm


 クラウディア


1. 概要
2. 正しい方法
3. パススルー

1. 概要

 やっと、意図するユーザ管理テーブルから、ログインユーザ・パスワードのチェックを行えるようになったと思ったら。  こういうエラーになります。

This password does not use the Bcrypt algorithm.
 これ、本来、「Laravel/ui」で使うパスワードは、「Bcrypt」により暗号化されていなけばならないのですが。  移植元のデータベースのパスワードが、平文「plain text」のままであるためでした。

2. 正しい方法

 パスワードを暗号化して、保存しなおすのが正しいやり方です。  ただし、パスワード変更の画面まで表示できなくなっているので、困ったもんだ。

3. パススルー

 これは、おすすめできる方法ではありません。  無理やり、パスワードチェックを抜けて、パススルーでログインさせる方法です。

vi [project path]/vendor/laravel/framework/src/Illuminate/Hashing/HashManager.php

   public function check(#[\SensitiveParameter] $value, $hashedValue, array $options = [])
   {
       return $this->driver()->check($value, $hashedValue, $options);
   }
 75行目を下記へ書き換えます。

       return true;