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。
是否可以通过用户角色字段扩展 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。