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 ...
Logout endpoint에서 키 삭제하기 전에 명확한 세션 데이터
- 키 삭제하기 전에 빈 JSON에 세션 데이터를 설정 - 세션은 삭제가 실패하거나 복제 지연이 있는 경우에도 사용 불가합니다. - 삭제가 실패한 경우 clear data로 오류 처리 추가 - 세션 데이터가 정리되었는지 보여주는 로깅 개선 - getRedisReadClient에 대한 정...
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 ...
Add verification logging to confirm Redis session is deleted during logout
로그인 중에 새로운 것을 설정하기 전에 Clear 기존 *** 쿠키
- 모든 가능한 *** 쿠키 변형 (기본 도메인, 호스트 이름, 도메인 없음) - 이전 로그인에서 이전 세션 쿠키 재사용 방지 - 새 로그인을 항상 새로 생성된 세션을 유지 - 로그인 후 계정 A에 로그인하는 문제 수정은 여전히 계정 B의 세션을 사용합니다
수정 로그아웃: 호출 SecurityService 로그아웃 엔드포인트 완전히 잘못된 세션
- Call SecurityService /api/security/logout, Java 백엔드에서 제대로 유효성 검사 - 세션이 삭제되고 CSRF 토큰이 제거되고 세션이 완전히 정리됩니다. - 로그아웃 후 다른 계정으로 로그인하는 문제가 여전히 이전 세션을 사용합니다. - Redis ...
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...
Logout 흐름 수정: 명확한 쿠키 하지만 여전히 자동 로그인 시도
- SkipAutoLogin 논리 제거 (자동 로그인은 항상 작동해야 함) - 로그아웃에 clearCookies param 추가 - 로그인 페이지는 clearCookies=true일 때 쿠키를 삭제하고 자동 로그인을 시도합니다. - Auto-login은 세션이 죽기 때문에 로그아웃 후 ...
로그아웃 문제 수정: 로그아웃 후 자동 로그인 방지
- SkipAutoLogin 쿼리 매개 변수 추가 - SkipAutoLogin=true가 존재할 때 자동 로그인 확인을 건너뛰기 - Logout에 대한 향상된 쿠키 (다중 도메인 / 경로 조합) - Client-side Cookies는 서버 측에 백업으로 삭제 로그인 후 이전 계정으로...
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 entity 추가
- 'photo' 또는 'Avatar Creator'를 저장하는 TYPE 열 추가 - Lombok @NoArgsConstructor와 충돌 한 중복 생성자를 제거 - 관제사에 있는 avatars를 창조할 때 avatarType를 놓으십시오
AvatarType 필드 대신 복잡한 프록시 탐지
- 간단한 유형 검사를 위해 avatarType 필드를 직접 검사하십시오 - 새 아바타를 만들 때 avatarType 설정 - 훨씬 간단하며 더 많은 수행 접근법
AvatarType 필드를 간단한 유형 검사에 대한 Avatar entity 추가
- 'photo' 또는 'Avatar Creator'를 저장하는 TYPE 열 추가 - 생성기 설정 - 인스턴스 확인 및 프록시 문제의 필요
Query 모든 사용자 avatars는 프록시 대신 실제 성을 얻을
- avatar에서 userId를 얻고, findByUserId를 쿼리합니다. (실제 엔티티티를 반환합니다) - 목록에서 일치 avatar 찾기 및 인스턴스 확인 - 작업에서 인스턴스를 방지하는 프록시 문제를 방지합니다
Avatar가 사진 또는 Avatar Creator 인 경우 간단한 필터를 사용하십시오
- 복잡한 프록시 탐지 논리 제거 - 간단히 필터 findById 결과가 AvatarPhoto 인 경우 확인 - 사진이 아닌 경우, Avatar Creator에 기본값 - 훨씬 더 간단한 접근
Hibernate LazyInitializer를 사용하여 프록시에서 실제 엔티티티 클래스를 얻을 수 있습니다
- 액세스 HibernateProxy의 LazyInitializer는 지속적인 클래스를 얻을 - Persistent 클래스가 AvatarPhoto 또는 AvatarAvatar Creator 인 경우 확인 - ***********를 이용한 힘 초기화 - 이것은 프록시가 될 때 avatar...
반사 대신 avatar 유형을 결정하는 직접 던지기를 사용하십시오
- AvatarPhoto에 캐스팅을 시도 먼저 강제 프록시 초기화 - Access getFileExtension()는 캐스트 후 직접 - 사진 캐스트가 실패하면 AvatarAvatar Creator 캐스트로 돌아갑니다. - 유형 탐지를 위한 더 나은 과실 취급
InvocationTargetException을 잡아서 프록시 유형 탐지 향상
- 실제 유형을 결정하기 위해 프록시의 방법을 호출 할 때 ClassCastException 핸들 - getFileExtension을 먼저 시도하십시오 (사진), getStyle (Avatar Creator) - Hibernate 프록시 유형 탐지를 위한 더 나은 오류 처리
Avatar 유형 탐지를 위한 Hibernate 프록시 취급을 개량하십시오
- getFileExtension 메소드의 클래스 계층 및 인터페이스 검색 - 인스턴스가 실패할 때 AvatarPhoto vs AvatarAvatar Creator를 감지하는 반사 - 클래스 이름 확인에 fallback 추가 - Avatar Creator avatars로 사진 avata...
Fix TypeScript errors: Replace 'any' types with proper interface in MemberListProvider
저장소에서 Reload avatar는 Hibernate 프록시 인스턴스 문제를 해결하기 위해
- Avatar entities는 관계에서로드 할 수 있습니다 Hibernate 프록시는 인스턴스 확인을 실패 - repository에서 Reload avatar는 실제 엔티티티 유형을 얻기 위해 (AvatarPhoto 또는 AvatarAvatar Creator) - reload가 실패...
초기 SVG는 항상 avatar가 HexHeadGroup에서 누락될 때 생성됩니다
- avatar fetch가 실패하면 초기 SVG를 생성하는 오류 처리가 삭제됩니다. - SVG 생성 논리 통합 - avatarSrc가 결코 빈 문자열이 없다
Avatar URL 생성에 대한 자세한 로깅 추가
- avatar URL이 생성되면 URL이 생성됩니다. - 아바타가 누락되거나 URL이 null일 때 로그 - 이것은 왜 avatars가 chatheads/chatboxes/member 명부에서 보여주지 않는지 확인할 것을 도울 것입니다
Avatar 설정 후 avatar 목록을 새로 고침
- avatar를 활성화 한 후, 업데이트 된 avatars 목록을 새로 고침 isActive 플래그 - 새로 고침 목록에서 활성 아바타 찾기 및 설정 - 이 변경은 제대로 작동하고 페이지를 새로 표시합니다
RecordState 대신 user.getAvatar()를 검사하여 활성 avatar를 결정합니다
- 이제 avatar가 user.getAvatar()에 비교하여 활성화된 마크를 반환합니다. - API 응답의 isActive 플래그는 실제 활성 avatar를 반영합니다. - avatar 변경이 제대로 지속되지 않은 문제 수정
프로필 페이지에서 avatars 목록에서 유효 avatar를로드
- Fetch avatars 목록과 활성으로 표시된 것을 찾습니다. - 목록의 전체 avatar 객체에서 activeAvatar 설정 (모든 세부 사항과 URL) - 회원 프로필에서 중복 avatar 생성 제거 (기본 정보 만) - 페이지 부하에 avatar 표시가 올바르게 표시됩니다
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...