2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Hash::make()でパスワード更新が行われずに1日かかった時の話

Last updated at Posted at 2020-12-17

今回は、LaravelのHash::make()でパスワードの更新が行われずに1日かかってしまった時の話をします。

public function update(Request $request)
    {
        $now = Carbon::now();  //現在の日時を取得
        $hased_password = Hash::make($request->updatePassword);  
     //パスワードをハッシュ値として生成
        $items = DB::table('users')->where('email', $request->email)->first();
        if (Hash::check($request->currentPassword, $items->password)) {
     //受け取ったパスワードとデータベースにあるパスワード(Hash値)が等しいかの確認
            $param = [
                'password' => $hased_password,
                'updated_at' => $now
            ];
            DB::table('users')->where('email', $items->email)->update($param);
        //usersテーブルにあるユーザーのパスワードを更新
            return response()->json([
                'message' => 'Password updated successfully',
                'data' => $param
            ], 200);
        } else {
            return response()->json([
                'message' => 'Password updated failure'
            ], 404);
        }
    }
public function update(Request $request)
    {
        $now = Carbon::now();  
        $items = DB::table('users')->where('email', $request->email)->first();
        if (Hash::check($request->currentPassword, $items->password)) {
            $param = [
                'password' => Hash::make($request->updatePassword),
                'updated_at' => $now
            ];
            DB::table('users')->where('email', $items->email)->update($param);
            return response()->json([
                'message' => 'Password updated successfully',
                'data' => $param
            ], 200);
        } else {
            return response()->json([
                'message' => 'Password updated failure'
            ], 404);
        }
    }

皆さん、この2つのコードでなにが違うか分かりますか?

結論から言うと

$hased_passwordを定義しているかどうかの違いだけです!

ただ、これに気づいていなかった僕は同じ画面を1日ずっと見続けていました。

もう一度おさらいすると

$hased_password = Hash::make($request->updatePassword);
// ~
$param = [
    'password' => $hased_password,
    'updated_at' => $now
];

こちらのコードはちゃんと値が更新されます。

$param = [
    'password' => Hash::make($request->password),
    //実行結果:空の値("")のHash値が設定される
    'updated_at' => $now
];

こっちではなぜか、$request->passwordの値がちゃんと受け取れていないようです。

なぜかは分からない、、、、

分かる人がいたら、ぜひコメントで教えていただけると幸いです。

2
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?