1
我正在關注Flask-potion教程並嘗試保護我的api。我試圖弄清楚如何在用戶端點上設置權限,以便用戶無法查看其他用戶的記錄。這裏是我的代碼:Flask-Potion + Flask-Principal鎖定用戶資源
class UserResource(PrincipalResource):
class Meta:
model = User
permissions = {
'read': 'id'
}
class ArticleResource(PrincipalResource):
class Schema:
author = fields.ToOne('user')
class Meta:
model = Article
read_only_fields = ['author']
permissions = {
'create': 'editor',
'update': ['user:author', 'admin']
}
我需要一個自定義權限來做到這一點?看起來這將是一種常見的情況。
我有點困惑與本 - 是否有一個原因ItemNeed第一酒店在這種情況下被命名爲「讀」?這就是絆倒我的原因。另外由於某種原因,當我實現這樣的東西,並去我沒有訪問的資源,我得到一個404?那是對的嗎? – DaBeeeenster
@DaBeeeenster Flask-Principals item-needs是'(method,value,model)'的三倍。您引用的ItemNeed允許讀取用戶模型。有一個待定的PR用於簡化這個:從下一個版本開始,或者'user:$ id''將解析爲UserNeed。 – lyschoening
@DaBeeeenster 404是正確的迴應。如果你返回400,它將允許人們監視他們無法訪問的資源ID。 – lyschoening