可以通过UserRoles字段扩展对strongloop的/用户/登录响应的任何方式吗?
默认情况下,strongloop返回带有" firstName,lastName,email,id和userName"的用户对象,我还需要userRoles。
答案 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 filter或scopes。