2015-12-15 49 views
0

我正在構建一個使用AngularJS和Ionic作爲前端的混合移動應用程序。何時以及如何檢查用戶擁有哪個活動組織?

每個用戶都屬於一個組織。但是可以在服務器和不同的Web應用程序中更改用戶所屬的組織。

用戶可以做到在web應用中的一些事情:

  • 獲取有關該組織的數據
  • POST,PUT和刪除數據關於組織

每一種需要API致電獲取相關信息。

現在我的問題是,何時以及如何檢查用戶屬於哪個組織?

  • 我應該在每次獲取,發佈,放置和刪除之前發送API調用以檢查用戶屬於哪個組織?
  • 如果是的話,那麼組織這個組織檢查的好方法是什麼,而不會讓我的其他代碼糾結?
+0

當您通過api調用從服務器獲取有關登錄用戶的詳細信息時,還可以獲取有關該用戶的組織詳細信息。 也確保你不會對你的api進行不必要的調用,因爲這可能會導致用戶對性能和可用性問題。 – dreamweiver

回答

1

這聽起來像你試圖得到的是用戶的權限編輯等組織只有當他們屬於它。應該做服務器端,原因如下:

  • 它使連接到操作的存取控制,這樣可以防止不允許服務器讀取/更改即使有客戶端的錯誤。
  • 它阻止惡意用戶完全繞過會員檢查,如果客戶端是所有執行規則的人員都可以執行此操作。
  • 它避免了您擔心的API調用,不斷需要重新檢查用戶的成員資格以及競賽條件,如果成員資格在支票和下一次調用之間發生變化。
  • 它可以處理您的Ionic客戶端和您的其他Web客戶端,並且可以讓您在將來擴展到更多客戶端,而無需重複檢查邏輯。
  • 同樣,它允許您在一個地方修改您的權限邏輯,例如,如果您想區分可以讀取組織的用戶和可以編輯它的管理員。

一旦服務器是實心的,只有你需要同步的用戶會員資格的幾個地方:

  • 在應用程序啓動,除非你繼續從上次使用的高速緩存,這就是好足夠。
  • 在某些使用應用程序的時間表上,如果成員關係頻繁變化,您希望快速同步。也許每當他們訪問他們的組織名單時。
  • 當用戶在應用程序中執行某些操作來使緩存無效時,如加入或離開組織。
  • 關於組織的API調用失敗時,因爲用戶可能不再是成員。
+0

謝謝你提供一個非常明確的答案 – user1283776

相關問題