2015-12-31 22 views
3

我在使用mongodb設置迴環項目中的管理員角色時遇到問題。我建立了一個簡單的模型,添加了acls,創建了一個用戶並將用戶與admin角色相關聯,但我無法通過API Explorer訪問模型 - 它總是以「需要授權」的形式返回。admin在迴環中的角色

下面是我所採取的步驟:

SLC回送:

1)我通過SLC添加模型測試模型 ?輸入型號名稱:test ?選擇數據源以將測試附加到:moti_db(mongodb) ?選擇模型的基類:PersistedModel ?通過REST API公開測試?是的 ?自定義複數形式(用於構建REST URL): 現在讓我們添加一些測試屬性。

Enter an empty property name when done. 
? Property name: name 
? Property type: string 
? Required? No 

2)創建用戶通過註冊頁面:ID = 1

3)創建通過API管理角色:ID = 1

4)改變角色和RoleMapping公共=真這樣我就可以將它們通過REST API

這裏的測試數據模型:

{ 
    "name": "test", 
    "base": "PersistedModel", 
    "idInjection": true, 
    "properties": { 
    "name": { 
     "type": "string" 
    } 
    }, 
    "validations": [], 
    "relations": {}, 
    "acls": [ 
    { 
     "accessType": "*", 
     "principalType": "ROLE", 
     "principalId": "$everyone", 
     "permission": "DENY" 
    }, 
    { 
     "accessType": "*", 
     "principalType": "ROLE", 
     "principalId": "admin", 
     "permission": "ALLOW" 
    } 
    ], 
    "methods": [] 
} 

這裏的角色

{ 
    "id": 1, 
    "name": "admin", 
    "created": "2015-05-22T19:45:23.887Z", 
    "modified": "2015-05-22T19:45:23.887Z" 
} 

這裏的RoleMapping:

{ 
    "id": 1, 
    "principalType": "USER", 
    "principalId": "1", 
    "roleId": 1 
    } 

回答

1

你在資源管理器的頂部設置授權令牌?您需要使用電子郵件和密碼來調用User.login(),然後將Auth令牌設置爲返回的身份驗證ID值。然後這個令牌與所有後續調用(作爲authorization:頭值發送,並允許您做出需要身份驗證的呼叫。

另一個有用的東西是運行與ACL調試API,你可以做

DEBUG=loopback:security slc run 

,它會告訴你它是如何確定的訪問。也許,輸出會有所幫助(粘貼在這裏),否則它作爲你的代碼看起來不錯,假設您之前登錄並使用令牌只是一個猜測。

相關問題