簡體   English   中英

使用 AWS 無服務器后端為 React 應用程序動態分配用戶權限

[英]Dynamically assigning user permissions for a react app with an AWS serverless backend

對於上下文,我構建了一個注釋應用程序以及無服務器堆棧: https://serverless-stack.com

基本上我有一個筆記應用程序,它允許用戶寫筆記,然后在儀表板上查看他們寫的所有筆記作為提要。 該數據庫是一個 DynamoDb 表,它根據 userId 進行查詢以返回將填充提要的所有注釋的列表。

我想弄清楚的是如何動態分配哪些用戶可以查看筆記。 例如,應用程序將有用戶 A、B 和 C。 用戶 A 寫了一個注釋,然后他允許用戶 C 查看但不允許用戶 B 查看。

實現這一目標的最佳方法是什么? 我已經看過一些基於角色的訪問控制選項,但我認為這在我正在嘗試做的事情的上下文中不起作用,因為在那種情況下會有太多假設的“角色”來處理所有可能的訪問組合,尤其是隨着用戶數量的增長。

我的另一個想法是保留一個單獨的 DynamoDb 表,用於存儲筆記與可以看到它們的各種用戶之間的關系。 所以架構會是這樣的:

noteId | userId | visibility
-------|--------|-----------
  1    |   A    |   Yes
-------|--------|-----------
  1    |   B    |   No
-------|--------|-----------
  1    |   C    |   Yes

並且返回可用注釋的查詢必須更新以填充可見性設置為 true 的注釋。

這是管理用戶權限的好方法嗎? 不確定此選項是否可以很好地擴展。

如果想出適合所有用例的完整 model,go 太過分了。 不過,我希望能夠提供一些指點。

對於 Amazon DynamoDB 中的 model 數據,考慮訪問模式是有意義的。 他們可能是以下,也許更多:

  1. 獲取特定用戶擁有的所有筆記
  2. 獲取對特定用戶可見的所有筆記
  3. 獲取特定注釋

鑒於這些模式,有多種方法可以使用 DynamoDB 表和二級索引來 model 數據。 查看以下鏈接以獲取建模指導:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM