diff --git a/app/Http/Controllers/AuthMobile/AuthController.php b/app/Http/Controllers/AuthMobile/AuthController.php index 892189da..739e461f 100644 --- a/app/Http/Controllers/AuthMobile/AuthController.php +++ b/app/Http/Controllers/AuthMobile/AuthController.php @@ -11,6 +11,9 @@ use App\Models\Staff; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; +use Illuminate\Support\Str; +use Illuminate\Support\Facades\Mail; +use App\Mail\ResetPassword; class AuthController extends Controller { @@ -161,4 +164,36 @@ class AuthController extends Controller ]; } + + public function forgotPassword(Request $request) + { + $user = User::where('email', $request->email)->first(); + if (!$user) { + return response()->json([ + 'success' => false, + 'status' => 0, + 'message' => "Emel tidak dijumpai. Sila daftar sekarang." + ]); + } + + $token = Str::random(60); + + $user['token'] = $token; + $user['is_verified'] = 0; + $user->save(); + + Mail::to($request->email)->send(new ResetPassword($user->name, $token)); + + if (Mail::failures() != 0) { + return response()->json([ + 'success' => true, + 'message' => "Berjaya DiHantar! Pautan Lupa Katalaluan Telah Dihantarkan Kepada Alamat Emel Anda." + ]); + } + return response()->json([ + 'success' => false, + 'status' => 500, + 'message' => "Failed! there is some issue with email provider" + ]); + } } \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index 21cf1572..82929f81 100644 --- a/routes/api.php +++ b/routes/api.php @@ -24,6 +24,7 @@ use App\Http\Controllers\ApiController; //Public routes Route::post('/register', [AuthController::class, 'register']); Route::post('/user/login', [AuthController::class, 'loginUser']); +Route::post('/forgotPassword', [AuthController::class, 'forgotPassword']); Route::post('/password/email', [ForgotPasswordController::class, 'sendResetLinkEmail']);