首页 > 解决方案 > 使用 AWS Lambda 函数在无服务器应用程序上本地测试 Auth0

问题描述

在我提出问题之前,重要的是要注意我正在使用的应用程序是预先构建给我的,几乎没有文档。很长的故事。我以前从未使用过无服务器应用程序,因此我完全感到困惑。

这里有一些上下文:

我有一个无服务器应用程序:位于 S3 存储桶中的 React 应用程序,由 AWS CloudFront 提供服务。它使用 Auth0 进行身份验证。目前的逻辑是,如果用户尝试访问应用程序的域,Auth0 会弹出登录提示。用户输入他们的凭证,然后将其发送到 AWS Lambda 函数,该函数将确认的登录凭证交换为 JSON Web 令牌。这将被发送回 Auth0,然后将用户重定向到应用程序的域(如果您认为我解释错误,请批评此解释)。
我正在尝试在本地测试 Auth0,以便我可以访问分配给每个用户的角色,以最终提供特定于他们角色的用户数据。

问题:

但是,我无法在本地测试 Auth。当我在 localhost:3000 运行 npm start 时,我会直接进入主页,完全跳过登录。

我知道这可能是因为很多事情,但这是我尝试过的。

我去了我的 Auth0 仪表板,在 Allowed Callback URLS 下,我输入了http://localhost:3000/logincb。(logincb 是在 AWS Lambda 步骤中给出的回调)。

我尝试使用 ngrok 创建安全连接,然后将此 url 放入 Allowed Callback URLs 中,但 localhost 上仍然没有 Auth0 弹出窗口。

如果请求 url 是 localhost:3000,我尝试在 Lambda 函数中添加条件,即如果请求 url 是应用程序的域名,则执行完全相同的操作

如果有帮助,我可以发布 Lambda 函数。它与使用 Amazon CloudFront 时的示例函数在 AWS Lambda 的文档中给出的示例类似。它具有处理 cookie、webtoken、向 Auth0 发布请求等功能。

对于这个问题的含糊之处,我深表歉意,此时我只需要一些灵感/想法。

和平与爱

标签: reactjsamazon-web-servicesaws-lambdaauth0

解决方案


推荐阅读