我正在使用NodeJS,Express和MongoDB開發SaaS API。它實施了JWT認證/安全方法。在RESTful API中檢查用戶權限
在我個人的情況下,我有(現在)兩個集合:用戶和客戶端。
你可以看到,每個集合具有字段(用於定義的目的)。因此,在終端設計方面我使用的是真實地寧靜的方法,使:
- /API /用戶/ {} userId的/客戶端:插入客戶,即
這正是我點讓我想要,在發佈新客戶之前檢查價格計劃是否允許用戶這樣做。在邏輯方面:
function post(req,res){
// Check if the JWT user.id is the same of the endpoint request
if(req.user._id == req.params.id){
// Here I want to know which is the price plan and to count the Clients that the user has
}
}
在我疑惑的方面,我還以爲在一些假設,但我真的不知道哪一個是最好的:
- 做一個查詢的用戶集合中獲取價格計劃,做一個查詢計數的客戶集合驗證,然後發佈新的客戶端。
- 將用戶的價格計劃信息放入JWT中,執行查詢計算用戶的客戶端集合驗證,然後發佈新客戶端。
這些是我想到的兩種主要可能的解決方案,但我嚴重懷疑安全性和性能方面的問題,我應該實施/遵循哪一個。
預先感謝您。
謝爾蓋還有一次,我非常重視你的意見,你總是在談論點。分析我的具體需求,對於這個工作流程,我需要3個查詢,你不覺得這有點花銷嗎?是的,目前我的困難並不是代碼明智的,但實際上架構和決策是明智的,很難單獨獲得這種知識。 – Ricardo
我個人有一個規則,並強制它進入公司,任何API響應應在300毫秒內給出。這是最高限制,但當然你希望速度儘可能快。另一方面,我個人將優化分爲微觀優化和優化,這是合理的。在微觀優化方面,你花費了昂貴的時間,但結果並不值得花費時間。我曾經工作過的一個項目,使得大約400分貝的查詢渲染每一頁。仍然有效。在這種情況下,3個查詢不值得考慮。但是,在你的情況下,你決定。 –