validateToken->run($token) : false; return inertia()->render('Dashboard/VikonUpdates/Index', [ 'is_authenticated' => $isAuth, 'current_version' => config('vikon.current_version'), 'modules' => config('vikon.modules'), 'vikon_api_domain' => config('vikon.api_domain'), 'vikon_client_id' => config('vikon.client_id'), ]); } public function authenticate(AuthenticateRequest $request): JsonResponse { try { $tokens = $this->auth->run( $request->validated('code'), $request->validated('redirect_uri') ); Session::put('vikon_access_token', $tokens['access_token']); Session::put('vikon_refresh_token', $tokens['refresh_token']); return response()->json(['success' => true]); } catch (\Throwable $e) { return response()->json(['success' => false, 'message' => 'Ошибка авторизации'], 422); } } public function refreshToken(): JsonResponse { $refreshToken = Session::get('vikon_refresh_token'); if (!$refreshToken) { return response()->json(['success' => false, 'message' => 'Нет refresh токена'], 401); } try { $tokens = $this->refreshToken->run($refreshToken); Session::put('vikon_access_token', $tokens['access_token']); Session::put('vikon_refresh_token', $tokens['refresh_token']); return response()->json(['success' => true]); } catch (\Throwable $e) { Session::forget(['vikon_access_token', 'vikon_refresh_token']); return response()->json(['success' => false, 'message' => 'Токен истёк'], 401); } } public function checkAccess(): JsonResponse { $token = Session::get('vikon_access_token'); if (!$token) { return response()->json(['success' => false, 'requires_auth' => true], 401); } $result = $this->checkAccess->run($token); return response()->json($result); } public function checkVersion(): JsonResponse { $token = Session::get('vikon_access_token'); if (!$token) { return response()->json(['success' => false, 'requires_auth' => true], 401); } return response()->json($this->checkVersion->run($token)); } public function updateModule(UpdateModuleRequest $request): JsonResponse { $token = Session::get('vikon_access_token'); if (!$token) { return response()->json(['success' => false, 'requires_auth' => true], 401); } try { $message = $this->updateCore->run($request->validated('module_id'), $token); return response()->json(['success' => true, 'message' => $message]); } catch (\Throwable $e) { return response()->json(['success' => false, 'message' => 'Ошибка обновления'], 500); } } public function logout(): JsonResponse { Session::forget(['vikon_access_token', 'vikon_refresh_token']); return response()->json(['success' => true]); } }