Выпуск #3802 - Команда для пользовательского переключения фиксирована
Добавить журналирование для преобразования RememberMe и типа
Добавить преобразование типа для RememberMe для обработки строки / булевой / цифры - Добавить подробную запись для отслеживания логики настройки cookie - Log Re...
Добавить всестороннюю регистрацию для операций cookie USERNAME и REMEMBER ME
- Добавить подробный журнал для чтения файлов cookie при загрузке страницы - Добавить запись для проверки файлов cookie после ответа на вход - Добавить запись з...
Обновить скрытое поле имени пользователя, чтобы использовать формуKey для восстановления
Добавление ключа к скрытому вводу имени пользователя для принудительного восстановления после выхода из системы Убедитесь, что все поля, связанные с именем поль...
Форму принудительного восстановления после выхода из системы, чтобы предотвратить автозаполнение браузера
Добавьте состояние FormKey, которое изменяется после выхода из системы, чтобы восстановить компонент Force - Изменить клавишу TextField, чтобы включить формуKey...
Используйте рандомизированные имена полей, чтобы предотвратить распознавание автозаполнения браузера
Генерировать случайный суффикс для имен полей имени пользователя на каждой загрузке страницы Предотвращает браузер от распознавания поля как одного и того же че...
Предотвращение автозаполнения браузера для восстановления старого имени пользователя после выхода из системы
- Изменить автозаполнение с «имя пользователя» на «выключено» в поле имени пользователя - Изменить форму автозаполнения с «включено» на «выключено» - Чистое имя...
Удалить все файлы cookie без разбора во время выхода из системы
- Удалить все файлы cookie на странице kamo-login logout (на стороне клиента) - Удалить все куки на kamo-login logout API (серверная сторона) - Очистить локальн...
Delete ALL cookies indiscriminately during logout
- Delete all cookies on kamo-internal logout page (client-side) - Delete all cookies on kamo-internal logout API (server-side) - Clear localStorage and sessionS...
Invalidate existing session before validating OTK
- Check for existing *** cookie in validate request - Clear and delete any existing session before validating OTK - Verify session data is not empty JSON (clear...
Invalidate existing session before creating new one during login
- Check for existing *** cookie in login request - Delete/invalidate existing session before creating new one - Prevents reusing old session cookies when loggin...
Disable activity tracking and session extension during logout
- Add disableClientActivityTracker() function to stop activity tracking - Stop session monitor when logout is initiated - Prevent screen movement/activity from ...
Чистые данные сеанса перед удалением ключа в конечной точке выхода из системы
Установите данные сеанса, чтобы очистить JSON перед удалением ключа. - Убедитесь, что сеанс непригоден, даже если удаление не удается или есть задержка репликац...
Clear session data before deleting key in logout endpoint
- Set session data to empty JSON before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handling wi...
Clear session data before deleting key to ensure session is unusable
- Set session data to empty JSON ({}) before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handli...
Improve logout cookie clearing - clear cookies across all domain/path combinations
- Clear cookies with base domain (e.g., .kamocrm.com) to cover all subdomains - Clear cookies for current hostname without domain attribute - Clear cookies unre...
Fix Redis import in logout route - use static import for getRedisReadClient
Clear existing *** cookies before setting new one during validate
- Clear all possible *** cookie variations before setting new cookie - Prevents reusing old session cookies from previous logins - Ensures validate always uses ...
Добавить запись проверки, чтобы подтвердить, что сессия Redis удалена во время выхода из системы
Add verification logging to confirm Redis session is deleted during logout
Очистить существующие *** куки перед установкой нового во время входа
Очистить все возможные варианты *** cookie (домен базы, имя хоста, нет домена) Предотвращает повторное использование старых файлов cookie сеанса из предыдущих л...
Исправьте выход из системы: позвоните в конечную точку выхода службы безопасности, чтобы полностью аннулировать сеанс
- Вызовите SecurityService /api/security/logout для корректной отмены сеанса на бэкэнде Java Это гарантирует, что сеанс удален, токены CSRF удалены, а сеанс пол...
Fix logout: call SecurityService logout endpoint to fully invalidate session
- Call SecurityService /api/security/logout to properly invalidate session on Java backend - This ensures session is deleted, CSRF tokens are removed, and sessi...
Fix logout flow: чистые куки, но попытка авторизации
Удалить логику skipAutoLogin (автологин должен работать всегда) - Добавить ClearCookies param для перенаправления выхода - Страница входа очищает cookies, когда...
Исправление проблемы выхода из системы: предотвращение автоматического входа после выхода из системы
- Добавить параметр запроса skipAutoLogin для перенаправления выхода - Пропустить проверку автологина при наличии skipAutoLogin=true Улучшенная клиринг куки при...
Replace PersonIcon with user avatar in NavTop My Account link
- Fetch member avatar using fetchMemberAvatar utility - Display Avatar component with user's image or initials fallback - Matches design pattern used in other c...
Добавить поле avatarType в объект Avatar для простой проверки типа
Добавьте колонку TYPE для хранения «фото» или «Avatar Creator». Удалите дубликаты конструкторов, которые конфликтовали с Lombok @NoArgsConstructor Установите av...
Использование поля avatarType вместо комплексного обнаружения прокси
Проверить поле avatarType непосредственно для простой проверки типа Установите avatarType при создании новых аватаров Гораздо более простой и эффективный подход
Добавить поле avatarType в объект Avatar для простой проверки типа
Добавьте колонку TYPE для хранения «фото» или «Avatar Creator». - Настройка конструкторов автоматически Избегает необходимости проверки и прокси-проблем
Используйте простой фильтр, чтобы проверить, является ли аватар фотографией или создателем аватара
Удалить сложную логику обнаружения прокси Просто фильтруйте результат findById, чтобы проверить, является ли это AvatarPhoto. Если нет фото, по умолчанию создат...
Объедините «аналитику» филиала ******************* в разработчик
Fix TypeScript errors: Replace 'any' types with proper interface in MemberListProvider
Добавьте вход в систему MemberListProvider для отладки проблем отображения URL-адресов аватара в списке участников
Добавьте подробный журнал для получения ThemeDomain и getPublicBucketUrl для отладки проблем генерации URL-адресов аватара
Добавьте подробную запись в генерацию URL аватара для отладки
Войдите, когда генерируются URL-адреса аватара, какие URL-адреса создаются Лог, когда аватары отсутствуют или URL-адреса являются нулевыми Это поможет определит...
Добавьте подробную регистрацию в avatarUtils для отладки проблем с отображением аватара
Фиксация ошибки TypeScript - добавьте явную аннотацию типа для поиска обратного вызова
Fix avatar not displaying on Profile page after refresh
- Ensure avatar URL from member profile is preserved when setting activeAvatar - Update profileData with avatar URL when avatar is loaded - Preserve URL in sync...
Add detailed logging for avatar selection debugging
- Log full avatar object when handleSelectAvatar is called - Add validation for avatar.id before processing - Log API URL being called - Better error messages f...
Fix TypeScript type error - handle null body in apiProxy
- Convert null to undefined for BodyInit type compatibility - Fixes: Type 'null' is not assignable to type 'BodyInit | undefined'
Fix PUT request body handling for set-active endpoint
- Explicitly set body to undefined for PUT requests without body - Improve body handling in apiProxy to gracefully handle empty requests - Prevents body consump...
Improve error handling for set-active avatar endpoint
- Forward actual backend error messages instead of generic message - Better error parsing in frontend (handle both JSON and text responses) - Enhanced logging t...
Use static imports instead of dynamic imports for avatarUtils
- Replace dynamic imports with static imports at top of file - Avoids module resolution issues with TypeScript moduleResolution node16 - Functions are always ne...
Revert to relative paths for dynamic imports - Next.js may not resolve path aliases in dynamic imports at build time
Fix path alias - use @/lib/avatarUtils instead of @/app/lib/avatarUtils
- @/ maps to project root, so @/lib/avatarUtils is correct path - @/app/lib/avatarUtils was incorrect (would look for app/app/lib/avatarUtils)
Fix dynamic imports - use path alias @/app/lib/avatarUtils for Next.js webpack resolution
- Change relative paths to path alias @/app/lib/avatarUtils - Next.js webpack can't resolve .js extensions for .ts files in dynamic imports - Path aliases work ...
Fix TypeScript ESM dynamic imports - add .js extension required for node16/nodenext module resolution
- TypeScript with moduleResolution node16/nodenext requires explicit .js extensions in dynamic imports - TypeScript will resolve .js imports to .ts files at bui...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.