我已经成功地创建了一个sendgrid帐户,并安装了strapi sendgrid npm包,以便让Strapi自动发送带有链接的确认电子邮件,以确认新用户的注册。
不过,我注意到,在电子邮件中,确认链接显示:
http://0.0.0.0:1337/api/auth/email-confirmation?confirmation=d48f20893fed7a1b0854b12996d409c31f3c7f9c第一个问题是0.0.0.0的ip地址,这不是我的strapi....let的ip地址,比如说我的ip地址是1.1.1.1 .在发送确认电子邮件时,如何使URL指向正确的IP地址?我似乎没有在Stapi后端找到要更改URL的字段.
其次,当我将0.0.0.0更改为正确的IP地址并保留其余的IP地址时,same....the链接似乎无法工作,并且我的用户在strapi后端的电子邮件无法确认邮件本身。
如何确保Strapi的确认链接实际用于确认和验证新用户的电子邮件?
=======================================
==========
我已经将config/server.js文件更改为:
module.exports = ({ env }) => ({
host: env('HOST', 'MY_IP_ADDRESS'),
port: env.int('PORT', 1337),
app: {
keys: env.array('APP_KEYS'),
},
});因此,我现在收到的确认链接显示如下:
MY_IP_ADDRESS:1337/api/auth/email-confirmation?confirmation=395d52db4863d7617427f65ae7010ece32d2b2da但是,当我将链接复制并粘贴到浏览器(与单击该链接相同)时,将得到:
{"data":null,"error":{"status":500,"name":"InternalServerError","message":"Internal Server Error"}}当我执行pm2 logs时,它显示了以下错误:
35.196:35.196错误:未定义的属性级操作符confirmationToken 0\strapi-错误:未定义的属性级操作符confirmationToken 0@strapi/database/lib/query/helpers/where.js:104:29 0_~_strapi/node_modules/@strapi/database/lib/query/query-builder.js:271:12) 0\strapi_ at Object.execute (/home/bliss/strapi/node_modules/@strapi/database/lib/query/query-builder.js:352:25) 0\#strapi\x{e76f}\x{e76f}{##**$$}}(节点:internal/process/任务_队列:96:5) \x{e76f}\strapi\x{e76f}\x{e76f}js:52:18)(/home/bliss/strapi/node_modules/@strapi/strapi/lib/services/server/policy.js:24:5) 0\strapi/ at异步/home/bliss/strapi/node_modules/@strapi/strapi/lib/middlewares/body.js:51:9 0\#strapi\\在异步的/home/bliss/strapi/node_modules/@strapi/strapi/lib/middlewares/logger.js:22:5 0\\strapi\\在异步的/home/bliss/strapi/node_modules/@strapi/strapi/lib上/middlewares/power-by.js:16:5\x{e76f}\_modules/@strapi/strapi/lib/services/metrics/middleware.js:29:5 0\strapi=2022-05-2017:25:35.517 http: GET /favicon.ico (1ms) 200
发布于 2022-05-20 17:06:36
更新:根据您共享的日志,我能够跟踪关于strapi的GitHub问题的错误报告。该bug一周前就已经修复,并作为4.1.11版本的一部分发布。尝试将strapi更新到至少此版本,并查看是否仍然发生错误。
谢谢您使用SendGrid!不幸的是,您的问题是由strapi引起的,无论您使用的是哪个电子邮件提供商,您都会遇到这个问题。
如果您使用默认配置在本地运行strapi,http://0.0.0.0:1337/应该解析到您的strapi应用程序,因此确认电子邮件中的URL也应该工作。
用于此URL的主机和端口是从.env文件中抓取的,默认情况下该文件如下所示:
HOST=0.0.0.0
PORT=1337
...您可以随意更改您的主机和端口。如果由于某种原因0.0.0.0无法工作(它在我的机器上工作),请尝试将主机更改为您的IP、本地主机或127.0.0.1。
如果您向另一台计算机上的用户发送确认邮件,他们将无法访问您在本地运行的strapi实例。
当您将strapi应用程序部署到生产中时,您将需要更新.env文件或以其他方式覆盖环境变量,以匹配生产机器的配置。
https://stackoverflow.com/questions/72318366
复制相似问题