放大 (AWS) 验证电子邮件给出 400 错误请求错误



我是 Amplify 的新手,在过去的一个半月左右的时间里,我一直通过 Amplify-cli 和 aws 控制台使用它,并且在此过程中学到了很多东西。然而,最近我遇到了一个其他人似乎没有的问题(我可以从互联网上搜索找到(。

我已经设置了我的React项目,该项目使用 aws 的 3 个主要服务:

  • Cognito(用于身份验证((标准和联合登录[Google,Facebook](
  • Lambda 函数(由 amplify-cli 自动生成,用于电子邮件验证(
  • GraphQL API 也通过 cli 添加

这些是我的应用程序中包含的三个主要服务。

出于某种奇怪的原因,在过去的几天里,当我实施注册身份验证时,用户收到验证电子邮件,我单击验证链接,我现在收到此错误:

正在点击的验证链接的屏幕截图

过去从未出现过这种情况,并且曾经完美地工作过。从那以后,我已经多次擦除了所有后端资源,甚至从头开始构建了整个 Amplify 项目,但我仍然不断收到该错误。

这是我parameters.json文件的一部分(在放大目录中(

"verificationBucketName": "hulpio17b04d80verificationbucket",
"parentStack": {
"Ref": "AWS::StackId"
},
"permissions": [],
"dependsOn": [
{
"category": "function",
"resourceName": "hulpio17b04d80CustomMessage",
"triggerProvider": "Cognito",
"attributes": [
"Arn",
"Name"
]
}
],

以下是我在 aws 控制台上的 s3 存储桶的屏幕截图:

S3 存储桶列表

我已经尝试了很多事情,但对于我的生活,我不明白为什么这个错误仍然出现,即使我已经擦除了所有内容并从头开始。

P.S 我的应用程序托管在Ireland eu-west-1,所以我使用的所有服务都托管在那里,除了 s3 存储桶,它显然是全局的,而不是本地化到单个区域。

所以,我有一个小更新,但它不是一个完整的解决方案。

真的更像是黑客。

verification-link.js文件中,我对一行进行了更改

const bucketUrl = `http://${resourcePrefix}verificationbucket-${process.env.ENV}.s3-website${seperator}${region}.amazonaws.com`;

我手动将其更改为

const bucketUrl = `http://hulpio17b04d80verificationbucket-${process.env.ENV}.s3-website${seperator}${region}.amazonaws.com`;

这次,当我点击验证 URL 时,它开始工作了。

现在,虽然这很棒,我可以破解它,但我当然不认为这是一个好的长期解决方案。似乎由于某种原因,资源前缀没有传递给verification-link.js

我仍在寻找,仍然非常欢迎对此的任何帮助。

提前感谢!

最新更新