api 网关 lambda return 应该如何重定向 URL 用于登录

how should an api gateway lambda return a redirect URL for login

我的 Lambda 函数 returns html 页。 我能够从节点 js 10.x 成功 return 一个完整的 html。 因此,如果我使用 api 网关 url 访问我的 lambda https://2kiz3ttah.execute-api.eu-west-1.amazonaws.com/stage/login 如果未登录,lambda 应该 return 重定向 URL。 如何 return 在浏览器中打开 URL,而不是呈现 HTML 页面。

在您的 Lambda 中,您只需要 return 以下内容:

{
   'statusCode': 302,
   'headers': {
       'Location': 'https://redirect.example.com/path'
   }
}

其中 https://redirect.exaaple.com/path 是 URL 你的路径应该被重定向到。

如果它是 API 网关中的 LAMBDA_PROXY 集成,这应该适用于您的 Lambda。

可获得更多信息 here

我猜你有类似的东西:

// ...your code
return {
  statusCode: 200,
  headers: {
    'Content-Type': 'text/html',
  },
  body: html,
};

因此,根据您的自定义逻辑 return 3xx 应该很容易。如果您的问题是基于认知身份验证,那么我认为您不走运,因为它 api 网关将 return 403 在您可以执行任何操作之前。在这种情况下,您可以尝试实现自定义 lambda 授权方,以便实现自定义逻辑