修正多租戶 Cookie 隔離與郵件查看功能
## 主要修正
1. **Cookie 隔離機制** (多租戶支援)
- 改用租戶專屬 Cookie: `webmail_session_{tenant_code}`
- 設定 Cookie path 為 `/{tenant_code}` 確保隔離
- 解決兩個租戶共用 Cookie 導致互相覆蓋的問題
2. **郵件查看 API 修正**
- 修正路由定義: `{{mail_id}}` → `{mail_id}` (FastAPI 路由語法錯誤)
- 修正函數呼叫: `get_mail_detail` → `get_mail_by_id`
3. **Session 讀取機制更新**
- Callback: 設定租戶專屬 Cookie
- Inbox/Compose/API: 從 `request.cookies.get(f"webmail_session_{tenant_code}")` 讀取
- 移除對 SessionMiddleware 的依賴 (改用手動 Cookie 管理)
4. **PKCE 錯誤訊息優化**
- 增加 PKCE 驗證失敗的詳細錯誤訊息
- 提示可能的失敗原因 (過期、舊連結、Redis 連線)
## 測試狀態
- ✅ 修正路由與函數呼叫錯誤
- ✅ 實作租戶專屬 Cookie 機制
- 🔧 待測試:兩個租戶同時登入不互相干擾
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,12 +13,19 @@ set REDIS_PASSWORD=DC1qaz2wsx
|
||||
set REDIS_DB=2
|
||||
set DATABASE_URL=postgresql://admin:DC1qaz2wsx@10.1.0.20:5433/virtual_mis
|
||||
set KEYCLOAK_SERVER_URL=https://auth.lab.taipei
|
||||
set MAIL_SERVER=10.1.0.254
|
||||
set SMTP_SERVER=10.1.0.254
|
||||
|
||||
echo Starting Uvicorn on port 8100...
|
||||
echo.
|
||||
echo Environment Variables:
|
||||
echo MAIL_SERVER=%MAIL_SERVER%
|
||||
echo SMTP_SERVER=%SMTP_SERVER%
|
||||
echo REDIS_HOST=%REDIS_HOST%
|
||||
echo.
|
||||
echo Access URL: http://10.1.0.245:8100
|
||||
echo.
|
||||
echo Press Ctrl+C to stop the server
|
||||
echo.
|
||||
|
||||
uvicorn app:app --host 0.0.0.0 --port 8100 --reload
|
||||
python -m uvicorn app:app --host 0.0.0.0 --port 8100 --reload
|
||||
|
||||
Reference in New Issue
Block a user