実現したいこと
ハッシュチェック「Hash::check」時に起こるエラーを解決したい
発生している問題・分からないこと
ログイン機能を実装中です。
パスワードをハッシュ化して保存したあと、ログイン時にRequestで入ってきたパスワードと比較してもエラーが起こります
エラーメッセージ
error
1「This password does not use the Bcrypt algorithm.」
該当のソースコード
Laravel
1namespace App\Http\Controllers; 2 3use App\Http\Controllers\Controller; 4use Illuminate\Http\Request; 5use Illuminate\Support\Facades\Auth; 6use App\Models\Member; 7use Illuminate\Support\Facades\Hash; 8 9 /** 10 * ログイン処理を行う 11 * @param Request $request, Member $member 12 * @return view 13 */ 14 public function show(Request $request, Member $member) 15 { 16 17 $request->validate([ 18 'email' => 'required|email', 19 'password' => 'required|string', 20 ]); 21 22 $email = $request->input('email'); 23 $password = $request->input('password'); 24 25 // データベースからメールアドレスが一致するメンバーを取得 26 $member = Member::where('email', $email)->first(); 27 28 // メンバーが存在し、パスワードが一致するか確認 29 if ($member && Hash::check($member->password, $password)) { //→エラー箇所 30 return view('login_id')->with(['member' => $member]); 31 } 32 33 // 認証に失敗した場合 34 return back()->withErrors(['email' => 'メールアドレスまたはパスワードが間違っています。'])->withInput(); 35 }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
namespace App\Http\Controllers;
use App\Models\Member;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
/**
* 会員登録処理をする
* @param Request $request
* @return view
*/
public function registerCreate(Request $request)
{
// バリデーション
$request->validate([
'name' => 'required|string|max:255',
'password' => 'required|string|confirmed',
]);
// 新しいユーザーを作成 $member = Member::latest()->first(); $member->name = $request->name; $member->password = Hash::make($request->password); $member->save(); // ユーザー登録後の処理 return view('registerCheck')->with(['member' => $member]); }
補足
.envファイルでは
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:DxViSDBNSiYc/Lh9lrt7srAqsMHN303v+BQeGl0KDSk=
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=http://localhost
SQLでは以下のように保存されています。
|id|name|mail|password
| 55 | taro | aaa@aaa.com | $2y$12$WTx2tPQxk2FtES98GEvAb.0faWR.T4g.wghnFjnOv62UsOzUBnQt6
となっています。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/07/17 06:31
2024/07/17 09:41