Add verification logging to confirm Redis session is deleted during logout
在登录时设置新 cookie 之前先清除已有的 *** cookie
- 清除所有可能的*** cookie 变量( 基准域、 主机名、 无域) - 防止重复使用以往登录的旧会话 cookie - 确保新登录总是使用新创建的会话 - 解决在登录后与账户A进行登录仍使用账户B会话的问题
修复登录: 呼叫安全服务登录结束点以完全取消会话
- 在 Java 后端调用安全服务/ api/ security/ logout 以适当取消会话 - 确保删除会话,删除 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...
修正登录流程: 清除 cookie 但仍尝试自动登录
- 删除跳过AutoLogin逻辑(自动登录应始终有效) - 添加清晰的 Cookies 参数到登录方向 - 登录页面清除 cookie 当 cookies= truth 清除时, 然后尝试自动登录 - 自动登录自会话结束后自然会失败 - 自动登录仍然对有有效会话的用户正常工作
修正登录问题: 登录后防止自动登录
- 添加跳过AutoLogin查询参数以登录重定向 - 跳过 AutoLogin= 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 实体添加可简单类型检查的可视化 Type 字段
- 添加 TYPE 列以存储“ 相片” 或“ Avatar 创建器 ” - 删除与伦博克相冲突的重复构造器@ NoArgsConstructionctor - 在控制器中创建相机时设置相机Type
使用avatarType 字段而不是复杂的代理检测
- 直接检查 AvatarType 字段以进行简单的类型检查 - 创建新相机时设置相机Type - 更简单、更能发挥作用
向 Avatar 实体添加可简单类型检查的可视化 Type 字段
- 添加 TYPE 列以存储“ 相片” 或“ Avatar 创建器 ” - 自动设置在构造器中 - 避免例如检查和代理问题
使用简单的过滤器检查是否是相片或 Avatar 创建器
- 删除复杂的代理检测逻辑 - 简单的过滤器找到ById结果 检查是否是AvatarPhoto - 如果不是相片, 默认为 Avatar 创建者 - 简单得多
Fix TypeScript errors: Replace 'any' types with proper interface in MemberListProvider
为调试添加详细的日志到 avatar URL 生成
- 生成可视化的 URL 时日志, 创建什么 URL - 失传或URL无效时日志 - 这将有助于确定为何Avatars没有出现在聊天头/聊天箱/成员名单中
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...
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...
Add avatar URLs to members by-department endpoint with override mechanism
- Include avatar URL in each member response from **************** - Respect override mechanism: member avatar (if exists) → user avatar (default) - Frontend ...
Fix avatar display with override mechanism support
- ProfileTab: Always show USER avatar (no override mechanism) - MembershipPermissionsTab: Always show MEMBER avatar (no override mechanism) - Site-wide displays...
Add detailed logging to track avatar state during save
- Log current state (useDefaultUserAvatar, activeAvatar, avatarIdToSend) before save - Log API response after save (memberAvatar, avatar) - Log refreshed profil...
添加安全提供者域搜索的全面记录
- 日志网络阵列和所有组织标识 - 详细记录Org ID与安全比较 - 日志域提取和URL构建步骤 - 这将有助于识别网络中是否缺少安全提供者或域名字段
