2017-09-02 71 views
0

我创建一个Web应用程序中,我使用REST用户界面和REST API我用用环回到环回。我的用户,acl,rollmapping,角色表都在mySQL中。在我的项目中,我可以控制访问权限,当我尝试使用回送UI(登录并设置访问令牌后)。但是,当我尝试与管理员休息用户界面我能够登录但无法控制访问,在管理休息我已经给所有的网址和所有在authClient.jsx。我的authClient.jsx文件:无法限制在登录管理权限使用管理上休息

const request = new Request('http://localhost:3004/api/Users/login', { 
    method: 'POST', 
    body: JSON.stringify({ email, password }), 
    headers: new Headers({ 'Content-Type': 'application/json' }) 
}); 

任何人都可以帮我解决这个问题吗?

回答

1

您需要使用AOR权限

https://github.com/marmelab/aor-permissions

这将处理所有身份验证和基于角色的访问。

在API方面,您将需要创建一个自定义登录方法,该方法也将返回请求中的用户角色。下面

User.customLogin = (credentials, cb) => { 
     User.login(credentials, 'User', function(err, token) { 
      if (err) { 
       console.error(err) 
       return cb(err) 
      } 
      app.models.RoleMapping.findOne({where: {principalId: token.userId}, include: {relation: 'role'}}, function(err, rolemap) { 
       if (err) { 
        console.error(err) 
        return cb(err) 
       } 
       token.role = rolemap.role().name 
       return cb(null, token) 
      }) 
     }) 
    } 

保存在localStorage的上登录,然后你可以使用AOR权限展现给每一位用户的基于角色的看法用户角色

类似。

编辑: 根据AOR明星贡献者@gildas下面。 AOR权限将被弃用,所有功能都将移至AOR Core。所以请检查您的AOR版本并据此作出决定。

+1

aor-permissions将会随着即将到来的1.3.0版admin-on-rest而被弃用。事实上,它的功能已被合并到核心软件包中。 – Gildas

+0

糟糕。我的错。你们移动快速的男人:) –

+0

@kunalpareek你可以看看这个:https://github.com/kimkha/aor-loopback/issues/15 – b24