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

Strongloop - add fields to returned user model

是否可以通过用户角色字段扩展 strongloop /User/login 响应?

默认情况下,strongloop return 用户对象 "firstName, lastName, email, id and userName",我还需要 userRoles。

您可以为内置登录方法创建一个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 (async/await),但您可以轻松地将其重写为 ES5。

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