2017-09-20 29 views
-1

我使用Loopback Framework創建多個服務,並使用api網關(tyk)來管理它們。如何設置微服務的訪問控制

不幸的是我不明白如何爲它們中的每一個設置訪問控制。

我不希望用戶訪問不屬於他的數據。

非常感謝,

回答

1

你可以很容易地使用兩種方法來保護你的模型。

1.從model.json文件

模型裏面model.json可以包括ACL對象。

"acls": [{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$authenticated", 
    "permission": "ALLOW" 
    }, { 
    "accessType": "*", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "DENY" 
    }] 

2.使用在model.js操作鉤子文件 您可以使用操作掛鉤操作的安全性。

例如

Template.observe('access', function (ctx, next) { 
    if(ctx.options.team){ 
     var teamId = ctx.options.team.teamId; 
    ctx.query.where= ctx.query.where || {or :[ {user_created : 0},{teamId : teamId}]} ; 
    next(); 
    } 

    }); 

希望這會有所幫助。