Loopbackjs 环回3.4.0:在自定义验证回调中获取当前用户ID和分配的角色

Loopbackjs 环回3.4.0:在自定义验证回调中获取当前用户ID和分配的角色,loopbackjs,Loopbackjs,使用common/models/model.js中的代码,我可以向模型添加自定义验证函数: module.exports = function(model) { model.validate('property', validatorCallback, { message: 'Message.' }); function validatorCallback(err) { // How to access userId and assigned user roles here?

使用common/models/model.js中的代码,我可以向模型添加自定义验证函数:

module.exports = function(model) {
  model.validate('property', validatorCallback, { message: 'Message.' });
  function validatorCallback(err) {
    // How to access userId and assigned user roles here?
  }
};

但是如何在验证功能中访问当前用户的userId和角色?

为此目标创建了一个
环回上下文。但根据我的经验,这是一辆马车,毫无用处

但验证器并不是实现目标的好地方


这是最好的地方。

目前看来这是不可能的。Github上有一个正在处理的问题:

我现在的解决方案是在保存之前添加一个,并在那里验证值。在before save钩子中,上下文可用,可用于访问
ctx.options.accessToken.userId
。如果该值无效,我将其设置为一个特定的无效值(在我的示例中为-1)。然后我可以简单地添加一个排除-1的验证器:

validatesExclusionOf('validatedProperty', { in: [-1], message: 'Invalid value.' });

使用保存前操作挂钩的优点是,无论如何访问/更改模型,它都会运行。通过使用内置的
validateExclusionof
validator,我得到了标准的ValidationError响应。

感谢您的回答!我认为在我的例子中,定制验证器将是合适的地方,它目前只是不提供对上下文的访问。我发布了我的解决方案。。。