| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- namespace App\Http\Controllers;
- use App\DataTransferObjects\AuthDto;
- use App\Http\Requests\AuthRequest;
- use App\Http\Requests\RefreshTokenRequest;
- use Illuminate\Http\Request;
- use Illuminate\Http\JsonResponse;
- use App\Http\Resources\AuthResource;
- use App\Services\AuthService;
- use App\DataTransferObjects\RefreshTokenDto;
- class AuthController extends Controller
- {
- public function __construct(
- protected AuthService $authService,
- ) {
- }
- public function login(AuthRequest $request): JsonResponse
- {
- $tokens = $this->authService->login(AuthDto::fromRequest($request));
- if (!$tokens) {
- return $this->errorResponse(message: __('auth.failed'), code: 401);
- }
- return $this->successResponse(payload: new AuthResource($tokens), message: __('auth.logged_in'));
- }
- public function logout(Request $request): JsonResponse
- {
- $user = $request->user();
- if (!$user) {
- return $this->successResponse(message: __('auth.logout'));
- }
- $user()->tokens()->delete();
- return $this->successResponse(message: __('auth.logout'));
- }
- public function refresh(RefreshTokenRequest $request): JsonResponse
- {
- $tokens = $this->authService->refresh(RefreshTokenDto::fromRequest($request));
- if (is_null($tokens)) {
- return $this->errorResponse(message: __('auth.unauthorized'), code: 403);
- }
- return $this->successResponse(payload: new AuthResource($tokens));
- }
- }
|