|
|
@@ -4,11 +4,13 @@ namespace App\Http\Controllers;
|
|
|
|
|
|
use App\Http\Requests\AuthRequest;
|
|
|
use App\Http\Requests\RefreshTokenRequest;
|
|
|
+use App\Http\Requests\RefreshTokenAppRequest;
|
|
|
use App\Http\Requests\UserAppsRequest;
|
|
|
use App\Http\Requests\UserAppsValidateCodeRequest;
|
|
|
use Illuminate\Http\JsonResponse;
|
|
|
use App\Http\Resources\AuthResource;
|
|
|
use App\Services\AuthService;
|
|
|
+use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
class AuthController extends Controller
|
|
|
{
|
|
|
@@ -27,6 +29,37 @@ class AuthController extends Controller
|
|
|
return $this->errorResponse(message: __("auth.failed"), code: 401);
|
|
|
}
|
|
|
|
|
|
+ return $this->successResponse(
|
|
|
+ payload: new AuthResource($result["payload"]),
|
|
|
+ message: __("auth.logged_in"),
|
|
|
+ )->withCookie(
|
|
|
+ cookie(
|
|
|
+ "refresh_token",
|
|
|
+ $result["refreshToken"],
|
|
|
+ config("sanctum.rt_expiration") * 60,
|
|
|
+ "/",
|
|
|
+ config("session.domain"),
|
|
|
+ config("session.secure"),
|
|
|
+ true,
|
|
|
+ false,
|
|
|
+ "Lax",
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ public function loginApp(AuthRequest $request): JsonResponse
|
|
|
+ {
|
|
|
+ $validated = $request->validated();
|
|
|
+
|
|
|
+ $result = $this->authService->login(
|
|
|
+ email: $validated["email"],
|
|
|
+ password: $validated["password"],
|
|
|
+ );
|
|
|
+
|
|
|
+ if (!$result) {
|
|
|
+ return $this->errorResponse(message: __("auth.failed"), code: 401);
|
|
|
+ }
|
|
|
+
|
|
|
return $this->successResponse(
|
|
|
payload: new AuthResource([
|
|
|
...$result["payload"],
|
|
|
@@ -46,13 +79,50 @@ class AuthController extends Controller
|
|
|
}
|
|
|
|
|
|
public function refresh(RefreshTokenRequest $request): JsonResponse
|
|
|
+ {
|
|
|
+ $refresh_token = $request->cookie("refresh_token");
|
|
|
+
|
|
|
+ if (is_null($refresh_token)) {
|
|
|
+ return $this->errorResponse(
|
|
|
+ code: 403,
|
|
|
+ )->withoutCookie("refresh_token");
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = $this->authService->refresh(
|
|
|
+ $refresh_token
|
|
|
+ );
|
|
|
+
|
|
|
+ if (is_null($result)) {
|
|
|
+ return $this->errorResponse(
|
|
|
+ message: __("auth.unauthorized"),
|
|
|
+ code: 403,
|
|
|
+ )->withoutCookie("refresh_token");
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->successResponse(
|
|
|
+ payload: new AuthResource($result["payload"]),
|
|
|
+ )->withCookie(
|
|
|
+ cookie(
|
|
|
+ "refresh_token",
|
|
|
+ $result["refreshToken"],
|
|
|
+ config("sanctum.rt_expiration") * 60,
|
|
|
+ "/",
|
|
|
+ config("session.domain"),
|
|
|
+ config("session.secure"),
|
|
|
+ true,
|
|
|
+ true,
|
|
|
+ "Lax",
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ public function refreshApp(RefreshTokenAppRequest $request): JsonResponse
|
|
|
{
|
|
|
$refresh_token = $request->validated("refresh_token");
|
|
|
|
|
|
if (is_null($refresh_token)) {
|
|
|
return $this->errorResponse(code: 403);
|
|
|
}
|
|
|
-
|
|
|
$result = $this->authService->refresh(
|
|
|
$refresh_token
|
|
|
);
|
|
|
@@ -63,7 +133,6 @@ class AuthController extends Controller
|
|
|
code: 403,
|
|
|
);
|
|
|
}
|
|
|
-
|
|
|
return $this->successResponse(
|
|
|
payload: new AuthResource([
|
|
|
...$result["payload"],
|