Explorar el Código

Fix redirects

Daniel Supernault hace 5 meses
padre
commit
455711332b
Se han modificado 2 ficheros con 24 adiciones y 3 borrados
  1. 23 3
      app/Http/Controllers/AppRegisterController.php
  2. 1 0
      routes/web.php

+ 23 - 3
app/Http/Controllers/AppRegisterController.php

@@ -45,7 +45,7 @@ class AppRegisterController extends Controller
                 'status' => 'error',
                 'status' => 'error',
                 'message' => 'Too many attempts, please try again later.'
                 'message' => 'Too many attempts, please try again later.'
             ]);
             ]);
-            return redirect("pixelfed://verifyEmail?{$errorParams}");
+            return redirect()->away("pixelfed://verifyEmail?{$errorParams}");
         }
         }
 
 
         DB::beginTransaction();
         DB::beginTransaction();
@@ -64,7 +64,7 @@ class AppRegisterController extends Controller
                 'status' => 'error',
                 'status' => 'error',
                 'message' => 'Failed to send verification code'
                 'message' => 'Failed to send verification code'
             ]);
             ]);
-            return redirect("pixelfed://verifyEmail?{$errorParams}");
+            return redirect()->away("pixelfed://verifyEmail?{$errorParams}");
         }
         }
 
 
         DB::commit();
         DB::commit();
@@ -75,6 +75,26 @@ class AppRegisterController extends Controller
             'status' => 'success'
             'status' => 'success'
         ]);
         ]);
 
 
-        return redirect("pixelfed://verifyEmail?{$queryParams}");
+        return redirect()->away("pixelfed://verifyEmail?{$queryParams}");
+    }
+
+    public function verifyCode(Request $request)
+    {
+        $this->validate($request, [
+            'email' => 'required|email:rfc,dns,spoof,strict|unique:users,email',
+            'verify_code' => ['required', 'digits:6', 'numeric']
+        ]);
+
+        $email = $request->input('email');
+        $code = $request->input('verify_code');
+
+        $exists = AppRegister::whereEmail($email)
+            ->whereVerifyCode($code)
+            ->where('created_at', '>', now()->subMinutes(60))
+            ->exists();
+
+        return response()->json([
+            'status' => $exists ? 'success' : 'error',
+        ]);
     }
     }
 }
 }

+ 1 - 0
routes/web.php

@@ -141,6 +141,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
 
 
     Route::get('/i/app-email-verify', 'AppRegisterController@index');
     Route::get('/i/app-email-verify', 'AppRegisterController@index');
     Route::post('/i/app-email-verify', 'AppRegisterController@store')->middleware('throttle:app-signup');
     Route::post('/i/app-email-verify', 'AppRegisterController@store')->middleware('throttle:app-signup');
+    Route::post('/i/app-code-verify', 'AppRegisterController@verifyCode');
 
 
     Route::group(['prefix' => 'i'], function () {
     Route::group(['prefix' => 'i'], function () {
         Route::redirect('/', '/');
         Route::redirect('/', '/');