|
@@ -3,7 +3,10 @@
|
|
|
namespace App\Http\Controllers;
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
use App\Http\Requests\AuthRequest;
|
|
use App\Http\Requests\AuthRequest;
|
|
|
|
|
+use App\Http\Requests\ForgotPasswordRequest;
|
|
|
use App\Http\Requests\RefreshTokenRequest;
|
|
use App\Http\Requests\RefreshTokenRequest;
|
|
|
|
|
+use App\Http\Requests\ResetPasswordRequest;
|
|
|
|
|
+use App\Http\Requests\VerifyPasswordCodeRequest;
|
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
use App\Http\Resources\AuthResource;
|
|
use App\Http\Resources\AuthResource;
|
|
|
use App\Services\AuthService;
|
|
use App\Services\AuthService;
|
|
@@ -47,6 +50,52 @@ public function login(AuthRequest $request): JsonResponse
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function forgotPassword(ForgotPasswordRequest $request): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $validated = $request->validated();
|
|
|
|
|
+
|
|
|
|
|
+ $sent = $this->authService->forgotPassword(email: $validated['email']);
|
|
|
|
|
+
|
|
|
|
|
+ if (!$sent) {
|
|
|
|
|
+ return $this->errorResponse(message: __('auth.email_not_found'), code: 422);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(message: __('auth.password_reset_sent'));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function verifyPasswordCode(VerifyPasswordCodeRequest $request): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $validated = $request->validated();
|
|
|
|
|
+
|
|
|
|
|
+ $valid = $this->authService->verifyPasswordCode(
|
|
|
|
|
+ email: $validated['email'],
|
|
|
|
|
+ code: $validated['code'],
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ if (!$valid) {
|
|
|
|
|
+ return $this->errorResponse(message: __('auth.invalid_code'), code: 422);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(message: __('auth.code_verified'));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function resetPassword(ResetPasswordRequest $request): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $validated = $request->validated();
|
|
|
|
|
+
|
|
|
|
|
+ $reset = $this->authService->resetPassword(
|
|
|
|
|
+ email: $validated['email'],
|
|
|
|
|
+ code: $validated['code'],
|
|
|
|
|
+ password: $validated['password'],
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ if (!$reset) {
|
|
|
|
|
+ return $this->errorResponse(message: __('auth.invalid_code'), code: 422);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(message: __('auth.password_reset_success'));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public function logout(Request $request): JsonResponse
|
|
public function logout(Request $request): JsonResponse
|
|
|
{
|
|
{
|
|
|
$this->authService->logout();
|
|
$this->authService->logout();
|