【发布时间】:2026-02-01 09:55:01
【问题描述】:
UserRoles 字段可以扩展strongloop 的/User/login 响应的任何方式吗?
默认情况下 strongloop 返回带有“firstName、lastName、email、id 和 userName”的用户对象,我还需要 userRoles。
【问题讨论】:
标签: node.js loopbackjs strongloop
UserRoles 字段可以扩展strongloop 的/User/login 响应的任何方式吗?
默认情况下 strongloop 返回带有“firstName、lastName、email、id 和 userName”的用户对象,我还需要 userRoles。
【问题讨论】:
标签: node.js loopbackjs strongloop
您可以为内置登录方法创建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。
【讨论】: