3

在StrongLoop API瀏覽器我有查詢選項:當我查詢用戶的項目時,爲什麼會出現錯誤401?

/人/(編號)/ food_prefs

人是基於內置的用戶模型。這個查詢應該返回該Person(用戶)的所有food_prefs的JSON列表。相反,我得到關於授權的401錯誤。

模型關係是這樣的:

Person has many food_prefs 
food_pref belongs to Person (foreign key: personId) 

food_pref模式是這樣的:

property: type : number 
property: personId : number 

當我將請求發送到人/(編號)/ food_pref我得到一個錯誤401:

{ 
    "error": { 
    "name": "Error", 
    "status": 401, 
    "message": "Authorization Required", 
    "statusCode": 401, 
    "code": "AUTHORIZATION_REQUIRED", 
    "stack": "Error: Authorization Required\n 
} 

我還沒有設置任何ACL,但即使設置爲訪問所有人,我仍然會出現此錯誤。爲什麼?

+0

您首先需要在向API發出請求之前認證您的身份。在請求中包含爲驗證返回的會話ID。 – marekful

+0

我試過了,我得到了身份驗證令牌並在瀏覽器中設置了令牌,但仍然沒有運氣。同樣的錯誤。這很奇怪,因爲我可以對相反的/ food_prefs/{id}/person進行查詢,並獲取擁有該food_pref的人的用戶ID和電子郵件信息。 –

+0

另外我做了slc loopback:acl和set person給所有人都有權訪問所有方法,甚至沒有做到這一點。 –

回答

0

答案是將以下權限添加到Person模型中的ACL部分。文件名是常見/模型/ person.json:

{ "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": "__get__foodPrefs" 
} 

類似的性質可以用於其它方法,如那些使用來擴展模型設置,例如,在共同的設定稱爲「的GetList」一個遠程方法/車型/ person.js。您只需將get_foodPrefs替換爲getList即可。請務必注意,自動生成的方法(如上面的方法)有兩個下劃線,而不是一個。

此外,其他權限可以是$認證,$所有者等。

相關問題