1
我正在使用loopback爲SPA網站創建一個簡單的API。我想保持我的權限盡可能的簡單,所以我結束了接下來的ACL模型用戶模型的loopback ACL
- 所有權限默認情況下拒絕
- 幾種型號的一些方法是允許大家
- 所有的方法都是允許任何授權用戶使用
如果我將創建多個用戶,並且沒有人能夠創建或修改用戶,這顯然會起作用。由於我無法明確更改內置User
模型的權限,因此我創建了一個admin
模型,該模型擴展了User
。然後我將User
模型的public
屬性設置爲false。我設置了以下ACL規則
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "login"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
}
在我看來,它應該拒絕比login
其他任何方法的任何unathorized用戶訪問。
不幸的是,它不是如何工作,任何人仍然可以POST /用戶和創建新用戶。我的猜測是ACL規則不適用於繼承模型,因此在這裏應用User
的規則。所以我回到了原點,我不能直接更改User
權限或覆蓋它們。
我在這裏有什麼選擇?有沒有辦法阻止創建新用戶?