在 Cognito 用户池应用程序客户端的回调 URL 中放置什么以与 FB Messenger 关联帐户?

What to put in the callback URL of Cognito user pool app client for account linking with FB Messenger?

我正在尝试使用 OAuth 在 FB Messenger 机器人和 AWS Cognito 用户池之间设置帐户链接。

我使用了 Messenger 帐户链接按钮模板并将其指向我的 Cognito 域登录端点。然后在 Cognito 应用程序客户端中将回调 URL 设置为 https://facebook.com/messenger_platform/account_linking/,因为这是 Messenger 发送的内容。

我不断收到来自 Cognito 的 "redirect_mismatch" 错误。我观察到 Messenger 在登录时附加的重定向 URI 有一个名为 "account_linking_token" 的查询字符串参数。这与它有关吗?由于 account_linking_token 是动态的并且会随着每个请求而变化。

我做错了什么?

您收到此错误是因为 Cognito 中的重定向 URI 与您通过动态查询字符串参数获取的 URI 不 1:1。目前,Cognito 不支持 Callback/Redirect URI 中的正则表达式或基于模式的字符串。

如果您没有坚如磐石且不易更改的回调 URI,您将无法使用 Amazon Cognito 实现您的功能。

因此,您会得到您所看到的 "redirect_mismatch" 错误,并且没有 Cognito 怪癖可以避免这种情况。