AWS Cognito通过API网关与Twilio集成

时间:2018-05-07 21:38:42

标签: amazon-web-services aws-lambda twilio aws-api-gateway aws-cognito

我目前有一个Lex聊天机器人,我想与Twilio和Cognito集成(从某种意义上说,只有Cognito认证的用户才能与Twilio和lex机器人进行通信)。

为此,我创建了一个处理Twilio请求的API网关,并将它们推送到与Lex交互的Lambda函数。我还在我的API网关中添加了一个Cognito授权程序,阻止用户在未经身份验证的情况下与Twilio进行交互。

我目前没有后端应用程序(长篇故事),所以现在用户登录Cognito托管的UI,重定向到Google的主页。

问题?我还没有找到一种方法将用户的Cognito登录(在网络浏览器上发生)中发出的身份验证凭据连接到与Twilio通信的API网关(因为Twilio正在制作初始API调用)。目前没有这样的连接,因此与Twilio(以及lexbot)的所有通信都被阻止。在进行API调用时,我无法将相关令牌推送到Twilio。

我有两种感受:

  1. 问题可能来自这样一个事实,即基于网络的登录与最终用户发送给Twilio以启动整个过程的短信之间没有联系
  2. 好像我必须使用自定义Lambda函数授权程序(如果可能,我想避免这种情况)
  3. 如果有帮助,我使用this tutorial作为起点。

    有什么想法吗?

    非常感谢任何和所有帮助或建议!

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

Twilio对API网关的HTTP请求在浏览器中与用户完全断开连接。关于排除尚未登录的用户的最佳方法是以某种方式将他们的电话号码存储在某个地方的AWS中,并且像您所说的那样,使用自定义授权程序检查From上的for i in `ls -1`;do touch "$i"/test.txt;done 电话号码。传入的webhook与您的一个用户匹配。