2

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

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

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

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

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

验证链接被点击的截图

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

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

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

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

s3 存储桶列表

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

PS 我的应用程序托管在其中,Ireland eu-west-1因此我使用的所有服务都托管在那里,除了 s3 存储桶,它显然是全球性的,而不是本地化到单个区域。

4

1 回答 1

0

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

更多的黑客真的。

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

我仍在搜索,仍然非常欢迎对此提供任何帮助。

提前致谢!

于 2020-05-26T17:21:29.367 回答