change from session to token

This commit is contained in:
2025-08-12 16:44:14 +03:30
parent cfb58a4c9c
commit 9a0758a754
9 changed files with 253 additions and 262 deletions

View File

@@ -4,9 +4,10 @@ namespace App\Http\Controllers;
use App\Http\Requests\Auth\LoginRequest;
use App\Http\Traits\ApiResponse;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class AuthController extends Controller
{
@@ -14,33 +15,25 @@ class AuthController extends Controller
public function login(LoginRequest $request): JsonResponse
{
if ($this->attemptLogin($request))
$user = User::query()->where('username', '=', $request->username)->first();
if (!Hash::check($request->password, $user->password))
{
$request->session()->regenerate();
$this->updateUserInfo($request);
return $this->successResponse();
return $this->errorResponse(__('messages.invalid_credentials'));
}
return $this->errorResponse(__('messages.invalid_credentials'));
}
$token = $user->createToken("{$request->username}", ['*'], now()->addWeek())->plainTextToken;
protected function attemptLogin(Request $request): bool
{
return Auth::guard()->attempt($request->only('username', 'password'));
}
protected function updateUserInfo(Request $request): void
{
Auth::user()->update([
'last_login' => now(),
return $this->successResponse([
'message' => __('messages.successful'),
'token' => $token
]);
}
public function logout(Request $request): JsonResponse
public function logout(): JsonResponse
{
Auth::guard()->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
auth()->user()->currentAccessToken()->delete();
return $this->successResponse();
}
}