首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户模型在loopback3中显示电子邮件验证错误

用户模型在loopback3中显示电子邮件验证错误
EN

Stack Overflow用户
提问于 2019-06-12 01:55:07
回答 1查看 34关注 0票数 0

我已经创建了一个基于User模型的MyUser模型,如下所示:

代码语言:javascript
复制
{
  "name": "MyUser",
  "base": "User",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "ownerRelations": true,
  "emailVerificationRequired": true,
  "hidden": [
    "email",
    "emailVerified"
  ],
  "properties": {
    "firstName": {
      "type": "string",
      "required": true
    },
    "lastName": {
      "type": "string",
      "required": true
    },
    "email": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {
    "accessTokens": {
      "type": "hasMany",
      "model": "CustomAccessToken",
      "polymorphic": {
        "foreignKey": "userId",
        "discriminator": "principalType"
      },
      "options": {
        "disableInclude": true
      }
    }
  },
  "acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    },
    {
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "ALLOW",
      "property": "create"
    }
  ],
  "methods": {}
}

它在我的本地服务器上运行得很好。但当我将其托管在亚马逊ec2上时,只创建了第一次用户。下一次,即使我给出了不同的电子邮件id,我也会得到如下的电子邮件验证错误:

The 'MyUser' instance is not valid. Details:电子邮件Email already exists (value: undefined).

现在,如果我删除第一条记录,并尝试创建用户,它可以工作。所以,只有第一个记录是插入和发布的任何独特的电子邮件也,我得到了验证错误。我不确定为什么会发生这种情况。

EN

回答 1

Stack Overflow用户

发布于 2019-06-12 02:57:37

我能够弄清楚问题所在。我保留了email作为隐藏字段。默认情况下,loopback具有"prohibitHiddenPropertiesInQuery": true,这不允许在查询中隐藏属性。因此,在用户验证期间,在loopback-juggler/lib/validation.js中的查询中会忽略email。在将prohibitHiddenPropertiesInQuery设置为false时,它可以正常工作。

然而,我仍然不确定为什么它在我的本地服务器上以开发模式工作。默认情况下,prohibitHiddenPropertiesInQuery是真的,所以它不应该也在开发模式下工作。如果有人对此有任何答案,请一定要让我知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56549302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档