Browse Source

重置密码成功后删除已有的验证码

kely 8 months ago
parent
commit
862750b518

+ 5 - 4
app/Http/Controllers/API/AuthController.php

@@ -65,14 +65,14 @@ class AuthController extends Controller
             ->orWhere('email',$request->username)
             ->first();
         //2.生成 验证码
-        $captcha = random_int(100000, 999999);
+        $code = uniqid();
         DB::table('password_reset_tokens')->insert([
             'email' => $user->email,
-            'token' => $captcha,
+            'token' => $code,
             'created_at' => Carbon::now()
         ]);
         //3.发送重置验证码邮件
-        Mail::to($user)->send(new ForgetPasswordMailable($captcha));
+        Mail::to($user)->send(new ForgetPasswordMailable($code));
         return $this->noContent();
     }
 
@@ -96,12 +96,13 @@ class AuthController extends Controller
 
         //3.判断验证码是否存在 验证码是否一致 验证码是否过期(15分钟) 若过期,执行以下if代码
         if (!$resetToken || $resetToken->token != $request->code || Carbon::parse($resetToken->created_at)->diffInMinutes(Carbon::now()) > 15){
-            // 这里抛出错误是否更好?
             return $this->badRequest('Verification code error or expired');
         }
         //4.一切没问题,则修改该用户的密码
         $user->password = Hash::make($request->new_password);
         $user->save();
+        //删除验证码
+        DB::table('password_reset_tokens')->where('email', $resetToken->email)->delete();
         return $this->noContent();
 
     }

+ 1 - 0
resources/views/emails/user/forgetPasswordCaptcha.blade.php

@@ -7,5 +7,6 @@
 
     ### Valid in 15 minutes
 
+    [Go to reset password]({{config('app.url').'/reset-password'}})<br>
     {{ config('app.name') }}
 </x-mail::message>