Strongloop - 向返回的用户模型添加字段

时间:2016-04-29 06:36:11

标签: node.js loopbackjs strongloop

可以通过UserRoles字段扩展对strongloop的/用户/登录响应的任何方式吗?

默认情况下,strongloop返回带有" firstName,lastName,email,id和userName"的用户对象,我还需要userRoles。

1 个答案:

答案 0 :(得分:1)

您可以为内置登录方法创建remote hook

user.js

中的

module.exports = User => {
  User.afterRemote('login', async (ctx, usr, next) => {
    let roleMaps = await User.app.models.RoleMapping.find({ where: { principalId: usr.userId } })
    let roleIds = roleMaps.map(roleMap => { return roleMap.roleId })
    let roles = await User.app.models.Role.find({ where: { id: { inq: roleIds } } })
    usr.roles = roles
    next()
  })
}

注意:我正在使用ES6和部分ES7(异步/等待),但您可以轻松地将其重写为ES5。

另一种选择是在用户和角色模型之间创建关系,然后使用include filterscopes