Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 当启用电子邮件验证时,Strapi在用户注册上返回错误代码400 我已经为strapi安装了发送网格模块。_Authentication_Registration_Strapi - Fatal编程技术网

Authentication 当启用电子邮件验证时,Strapi在用户注册上返回错误代码400 我已经为strapi安装了发送网格模块。

Authentication 当启用电子邮件验证时,Strapi在用户注册上返回错误代码400 我已经为strapi安装了发送网格模块。,authentication,registration,strapi,Authentication,Registration,Strapi,npm i strapi提供商电子邮件发送网格 配置了电子邮件插件 角色和权限设置 但无论何时我注册了一个用户,返回的错误代码是400,也没有邮件被发送 POST/auth/local/register 但是,用户是在strapi的用户内容类型中创建的 控制台屏幕截图 帮我处理一下 它在您的messages.id中显示“Auth.form.error.email.invalid” 从Sendgrid的网站:“如果您试图将电子邮件发送到不符合internet电子邮件格式标准的地

npm i strapi提供商电子邮件发送网格

  • 配置了电子邮件插件
  • 角色和权限设置

  • 但无论何时我注册了一个用户,返回的错误代码是400,也没有邮件被发送

    POST/auth/local/register

    • 但是,用户是在strapi的用户内容类型中创建的

    • 控制台屏幕截图


    帮我处理一下

    它在您的messages.id中显示“Auth.form.error.email.invalid”

    从Sendgrid的网站:“如果您试图将电子邮件发送到不符合internet电子邮件格式标准的地址,或者收件人的邮件服务器上不存在该电子邮件,则会发生无效电子邮件。。。如果收件人服务器检查了地址,但没有找到,他们将返回550个回退,说这是一个无效的电子邮件地址。”


    该电子邮件地址是否确实存在?请尝试使用您的个人电子邮件帐户进行测试。

    电子邮件插件的错误管理不好,我们必须更改它

    此错误可能是由

    要获得正确的错误,我建议您直接在
    strapi提供程序电子邮件发送网格中添加
    控制台.log
    err


    我知道这样做不好,但这将是了解您所犯错误的唯一方法。

    我与Strapi的AWS SES电子邮件提供商面临类似问题,因此我将把我的解决方案留在这里,以防将来有人用谷歌搜索这个问题

    该错误消息实际上是由Sendgrid Strapi电子邮件提供程序在第58行()中抛出的

    有一个捕获将吞下Sendgrid库抛出的异常,并抛出此通用消息。以下是您的选项,以确定实际错误是什么:

  • 通过附加到正在运行的NodeJS进程来调试提供程序
  • 将一些console.log语句添加到catch内的
    node\u modules/strapi provider email sendgrid/lib/index.js文件中,并检查标准输出
  • 修改调用以在catch内拒绝,以返回实际的
    错误。消息
    字符串。这可能需要研究Strapi将如何处理控制器内抛出的错误,以确保它不会在I18N中间件或其他扩展点中丢失

  • 感谢您查看。我检查了我的sendgrid仪表板,它显示Request=0(我猜,这意味着sendgrid没有拒绝它。只是他们没有收到来自strapi的任何请求)。我也用我自己的电子邮件帐户对它进行了测试,结果是一样的。有什么进一步的建议吗?谢谢你查看。我
    console.log
    the
    err
    。这是输出
    {messages:[{id:'Auth.form.error.email.invalid'}
    。我实际上找到了一个解决方案。我在
    \extensions\users permissions\controllers
    中重写了Auth.js文件。我将发布一个完整的解决方案:)。但是,问题仍然没有真正解决。它只是一个侧面。Oops@Jim LAURIE,我实际上是
    控制台。在Auth.js文件中记录
    错误e是
    err
    console.log,来自
    strapi提供商email sendgrid
    node\u模块
    code:401,消息:“Unauthorized”,响应:{标题:{服务器:'nginx',日期:'Thu,2019年12月26日16:13:44 GMT',内容类型:'application/json',…还有一些其他内容},正文:{错误:[{消息:“提供的授权授予无效、过期或已撤销”,字段:null,帮助:null}]}}
    您的sendgrid权限是否正确?(配置、令牌和blablabla…)是的。我可以用sendgird的官方代码替换strapi邮件代码来发送邮件,这意味着配置、令牌等都是正确的。