RememberMe 값과 유형 변환에 대한 로깅 추가
- string/boolean/number 핸들링을 위한 type 변환 추가 - 추적 쿠키 설정 논리에 대한 자세한 로그 추가 - Log RememberMe 값 및 유형은 쿠키 설정 문제를 디버그
USERNAME 및 REMEMBER ME 쿠키 작업에 대한 포괄적 인 로깅 추가
- 페이지 부하에 대한 자세한 로깅 추가 - 로그인 응답 후 쿠키를 확인하려면 로그인을 추가하십시오. - 로그인 API에서 Set-Cookie 헤더 로깅 추가 - 벌레잡기를 위한 페이지 짐에 모든 쿠키를 기록하십시오
Remount를 위한 formKey를 사용하는 숨겨진 사용자 필드를 업데이트하십시오
- logout 후에 remount에 숨겨지은 사용자 입력에 열쇠를 추가하십시오 - 로그아웃 후 모든 사용자 관련 필드를 완전히 신선하게 유지
브라우저 autofill을 방지하기 위해 logout 후에 힘 모양 remount
- 강제 구성 요소 remount에 로그아웃 후 변경되는 formKey 상태 추가 - FormKey를 포함하는 TextField 키 변경 - Change motion.div 키는 formKey를 포함 - 임의 필드 이름과 autocomplete=off와 결합하여 브라우저 자동 채우기 방...
브라우저 자동 충전 인식을 방지하기 위해 임의 필드 이름을 사용합니다
- 각 페이지 부하에 사용자 이름 필드 이름을 위한 무작위 suffix 생성 - 페이지 부하를 가로지르는 영역에서 브라우저를 방지 - autocomplete=off와 state를 결합하여 기존의 사용자 자동 채우기 방지
로그아웃 후 오래된 사용자를 복원하는 브라우저 자동 채우기
- 'username'에서 'off'로 자동 완성 - 'on'에서 'off'로 자동 완성 - 로그아웃에서 온 경우 Clear 사용자 및 암호 상태 - 사용자가 다시 클릭 할 때 자동 채우기 이전 사용자의 브라우저를 방지 - 로그아웃 후 신선한 로그인 양식을 보장합니다
로그아웃 중에 모든 쿠키를 비활성화
- kamo-login 로그아웃 페이지에서 모든 쿠키 삭제 (클라이언트 측) - kamo-login logout API에서 모든 쿠키 삭제 (서버 사이드) - Clear localStorage 및 sessionStorage 뿐 아니라 - 모든 도메인/경로 조합된 쿠키 삭제 - 모든 도메...
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 열 추가 - 생성기 설정 - 인스턴스 확인 및 프록시 문제의 필요
Avatar가 사진 또는 Avatar Creator 인 경우 간단한 필터를 사용하십시오
- 복잡한 프록시 탐지 논리 제거 - 간단히 필터 findById 결과가 AvatarPhoto 인 경우 확인 - 사진이 아닌 경우, Avatar Creator에 기본값 - 훨씬 더 간단한 접근
Fix TypeScript errors: Replace 'any' types with proper interface in MemberListProvider
Avatar URL 생성에 대한 자세한 로깅 추가
- avatar URL이 생성되면 URL이 생성됩니다. - 아바타가 누락되거나 URL이 null일 때 로그 - 이것은 왜 avatars가 chatheads/chatboxes/member 명부에서 보여주지 않는지 확인할 것을 도울 것입니다
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)
동적 수입 수정 - 다음을 위해 path alias @/app/lib/avatarUtils를 사용
- 경로 별칭 @/app/lib/avatarUtils에 관계되는 경로 변경 - Next.js webpack은 .js 확장을 동적 수입에 .ts 파일에 해결할 수 없습니다. - Path aliases는 Next.js 모듈 해상도로 더 잘 작동합니다
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...