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を空にする - 削除が失敗しても、またはレプリケーションの遅れがある場合でも、セッションが利用できないようにする - 削除が失敗した場合、フォールバックでエラー処理を追加 - セッションデータが消去されたかどうかを示すロギングを改善 - getRedisReadClien...
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
ログイン時に新しいクッキーを設定する前に、既存のクッキーをクリア
- 全て消去可能*** クッキーのバリエーション(ベースドメイン、ホスト名、ドメインなし) - 以前のログインから古いセッションクッキーの再利用を防止 - 新しいログインを常に新しく作成されたセッションを使用するようにする - ログアウトがまだアカウントBのセッションを使用してアカウントAでログインする問題を修正
Fix ログアウト:セキュリティサービスログアウトエンドポイントを呼び出して、セッションを完全に無効化
- コールセキュリティサービス/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 ログアウトフロー:明確なクッキーが、それでも自動ログインを試みる
- skipAutoLogin ロジックを削除します(自動ログインは常に動作するはずです) - ログアウトリダイレクトにclearCookie パラメータを追加 - ログインページは、clearCookies=true のときにクッキーをクリアし、自動ログインを試みます。 - セッションが殺されたので、オートログインは...
ログアウトの問題を修正:ログアウト後の自動ログインを防ぐ
- ログアウトリダイレクトに 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...
シンプルなタイプのチェックのためにAvatarエンティティティにavatarTypeフィールドを追加
- 「photo」または「Avatar Creator」を格納するTYPEカラムを追加 - Lombok @NoArgsConstructorと競合する重複コンストラクターを削除 - コントローラーでアバターを作成するときにアバタータイプを設定します
複雑なプロキシ検出ではなく avatarType フィールドを使用する
- シンプルなタイプのチェックのために、アバタータイプフィールドを直接チェック - 新しいアバターを作成するときにアバタータイプを設定する - よりシンプルでよりパフォーマントなアプローチ
シンプルなタイプのチェックのためにAvatarエンティティティにavatarTypeフィールドを追加
- 「photo」または「Avatar Creator」を格納するTYPEカラムを追加 - コンストラクタで自動設定 - チェックやプロキシの問題のインスタンスの必要性を避けます
すべてのユーザアバターをプロキシではなく、実際のエンティティティを取得
- avatar から userId を取得し、findByUserId をクエリします(実際のエンティティを返します) - リストから一致するアバターを見つけて、インスタンスをチェックする - これは、作業からインスタンスを防止するプロキシの問題を回避します
アバターが写真かアバターのクリエイターであるかどうかを点検するのに簡単なフィルターを使用して下さい
- 複雑なプロキシ検出ロジックを削除します - 単にAvatarPhotoであるかどうかを点検するためにfindByIdの結果をろ過して下さい - 写真がない場合は、デフォルトでAvatar Creator - より簡単なアプローチ
Hibernate LazyInitializerを使用して、プロキシから実際のエンティティティメントクラスを取得する
- HibernateProxyのLazyInitializerにアクセスして、持続的なクラスを取得 - 永続クラスがAvatarPhotoまたはAvatarAvatar Creatorであるかどうかをチェックする - 強制初期化(************************) - これは、プロキシであっても、アバ...
直接キャストを使用して、リフレクションではなくアバタータイプを決定する
- プロキシの初期化を強制するためにAvatarPhotoに最初に鋳造を試みて下さい - キャスト直後のアクセスgetFileExtension() - 写真のキャストが失敗した場合、AvatarAvatar Creatorに戻って秋 - タイプ検出のためのよりよい間違いの処理
InvocationTargetException をキャッチすることでプロキシタイプの検出を向上
- プロキシのメソッドを呼び出して実際のタイプを決定するときにClassCastExceptionを処理する - まずはgetFileExtension(写真)、getStyle(Avatar Creator)をお試しください。 - Hibernateプロキシタイプの検出のためのより良いエラー処理
アバタータイプの検出のためのHibernateのプロキシ処理を改善して下さい
- getFileExtensionメソッドのクラス階層とインターフェイスを検索する - インスタンスが失敗したときにAvatarPhoto対AvatarAvatar Creatorを検出するために反射を使用する - クラス名のチェックにフォールバックを追加する - フォトアバターがAvatar Creator ava...
Fix TypeScript errors: Replace 'any' types with proper interface in MemberListProvider
リポジトリからアバターをリロードして、Hibernateプロキシインスタンスの問題を解決
- 関係から読み込まれたアバターのエンティティティティティティティティは、インスタンスのチェックに失敗するハイバロンのプロキシかもしれません - リポジトリからアバターをリロードして、実際のエンティタイプ(AvatarPhotoまたはAvatarAvatar Creator)を取得する - リロードが失敗した場合、リロ...
HexHeadGroup でアバターが欠落したときに SVG が常に作成されるようにする
- アバターフェッチが失敗した場合、エラー処理フォールバックを追加すると、初期SVGを作成する - 初期SVG作成ロジックの統合 - avatarSrc が空文字列でないことを確認してください
GetThemeDomain と getPublicBucketUrl に詳細なロギングを追加して、アバター URL 生成問題のデバッグ
デバッグ用のアバターURL生成に詳細なロギングを追加
- アバター URL が生成されると、URL が作成されるときのログ - アバターが欠落しているか、URLがnullの場合のログ - これは、アバターがチャットヘッド/チャットボックス/メンバーリストに表示されていない理由を識別するのに役立ちます
アバターをアクティブに設定した後、アバターリストを更新
- avatarをアクティブに設定した後、更新されたisActiveフラグを取得するために、全アバターリストを更新します - 更新されたリストからアクティブなアバターを見つけて設定する - これは変更が正しく主張し、ページの更新で表示することを保障します
RecordState の代わりに user.getAvatar() をチェックすることで、アクティブなアバターを決定します
- バックエンドは、user.getAvatar() と比較して、アバターがアクティブであるというマークを正しくマークします。 - これは、APIレスポンスのisActiveフラグが実際のアクティブアバターを反映していることを確認します。 - アバターの変更が正しく主張されていない問題を修正
プロフィールページのアバターリストからアクティブなアバターを読み込む
- フェッチアバターリストとアクティブにマークされているものを見つける - リスト内のフルアバターオブジェクトからActiveAvatarを設定します(すべての詳細とURLがあります) - メンバープロファイルから冗長アバターの作成を削除(基本情報のみ) - これはページ負荷でアバターの表示を正しく保障します
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 動的インポート - パスエイリアス@/app/lib/avatarUtils for Next.js webpackの解像度を使用する
- 相対パスをエイリアス @/app/lib/avatarUtils パスに変更する - Next.js Webpack は .ts ファイルの .js 拡張子を動的インポートで解決できません。 - パスエイリアスは、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...
Fix TypeScript module resolution - remove .js extension from dynamic imports
- Change dynamic imports from avatarUtils.js to avatarUtils (no extension) - Fixes build error: Module not found: Can't resolve '../../lib/avatarUtils.js' - Typ...
