Browse Source

如果创建验证码前发现已经存在则更新,不存在则新增

kely 8 months ago
parent
commit
a3aa16fc03
2 changed files with 20 additions and 7 deletions
  1. 19 6
      app/Http/Controllers/API/AuthController.php
  2. 1 1
      app/Mail/ForgetPasswordMailable.php

+ 19 - 6
app/Http/Controllers/API/AuthController.php

@@ -64,13 +64,26 @@ class AuthController extends Controller
             ->where('username',$request->username)
             ->orWhere('email',$request->username)
             ->first();
-        //2.生成 验证码
+
+
         $code = uniqid();
-        DB::table('password_reset_tokens')->insert([
-            'email' => $user->email,
-            'token' => $code,
-            'created_at' => Carbon::now()
-        ]);
+
+        $exists = DB::table('password_reset_tokens')->where('email', $user->email)->exists();
+
+        if ($exists) {
+            // 如果记录存在,更新它
+            DB::table('password_reset_tokens')->where('email', $user->email)->update([
+                'token' => $code,
+                'created_at' => Carbon::now(),
+            ]);
+        } else {
+            // 如果记录不存在,插入新记录
+            DB::table('password_reset_tokens')->insert([
+                'email' => $user->email,
+                'token' => $code,
+                'created_at' => Carbon::now(),
+            ]);
+        }
         //3.发送重置验证码邮件
         Mail::to($user)->send(new ForgetPasswordMailable($code));
         return $this->noContent();

+ 1 - 1
app/Mail/ForgetPasswordMailable.php

@@ -18,7 +18,7 @@ class ForgetPasswordMailable extends Mailable
     /**
      * Create a new message instance.
      */
-    public function __construct(public  int $code)
+    public function __construct(public string $code)
     {
 
     }