Authentication 当启用电子邮件验证时,Strapi在用户注册上返回错误代码400 我已经为strapi安装了发送网格模块。
npm i 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电子邮件格式标准的地
- 但是,用户是在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
theerr
。这是输出{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邮件代码来发送邮件,这意味着配置、令牌等都是正确的。