我試圖建立一個多租戶SaaS應用程序,我知道有多種方法,但我選擇了一個我認爲最適合的多數據庫。多租戶SaaS應用程序的最佳方法
所以我爲每個租戶創建一個數據庫,並在主分區 中存儲租戶表,並根據子域將用戶連接到各自的數據庫。
現在我的問題是在哪裏存儲用戶,在主分貝?或租戶數據庫,存儲在主分貝的用戶將使其難以獲得其他數據庫的用戶相關模型,但將其存儲在租戶數據庫將使其難以對所有用戶進行身份驗證...
也最好的場景是什麼?
- 進行身份驗證,獲取jwt令牌。
- 向每個請求發送令牌。
- 對每個請求驗證令牌,檢查子域,連接到各自的租戶數據庫,執行請求。
這是一個好方法嗎?我應該如何處理用戶表問題? ThnQ
「保存它裏面的租戶數據庫將難以對所有用戶進行身份驗證」爲什麼你想這樣做嗎? –
也許我沒有說清楚......如果我把它存儲在租戶數據庫中,當用戶第一次登錄時沒有指定哪個租戶。我怎麼知道從哪個數據庫進行身份驗證? – Sherif
要麼通過使用看起來像電子郵件的用戶標識(例如,[email protected])明確指定租戶,要麼通過查看提供請求的域名來隱式確定租戶。無論哪種情況,您都希望您的用戶標識在每個承租人中都是唯一的,而不是在所有承租人中唯一。也就是說,如果有人在租戶#1內設置了用戶標識,那麼這不應該阻止其他人在租戶#2內使用用戶標識。 –