CloudFront 签名 Cookie 为 API 网关访问保持 Session 状态
CloudFront Signed Cookies Keeping Session State for API Gateway Access
我正在为我的网络应用程序使用以下技术栈
- CloudFront 作为代理和 CDN
- S3 指向 CloudFront 以服务 AngularJS 应用程序
- APICloudFront for REST 的网关来源API
- Cognito UserPools with CognitoAuthorizer 在 API Gateway
中进行身份验证
为了存储 Web 应用程序用户 session,我通常将 Cognito 发布的 JWT 存储在 Client-Side Cookie、HTML5 LocalStorage 或 SessionStorage 中。
不过,我很想知道 CloudFront 签名 Cookie 可以为 Web 应用程序提供 session 状态。我希望使用签名 Cookie 来存储 JWT 并使用 Edge Lambda 将签名 Cookie 映射到授权 Header 以验证 API 网关。我有兴趣知道
- 使用 CloudFront 签名的 Cookie 来存储 JWT 是否可行?
- 在 Web 应用程序的签名 Cookie 中存储 session 状态是一种好方法吗?
- 如果是这样,围绕它的最佳做法是什么?我不确定使用 Edge Lambda 是正确的方法。
CloudFront 签名 Cookie 无法存储自定义数据。因此,无法将发布的 AWS Cognito UserPool id_token 存储在签名 Cookie 中。因此,被质疑的方法无法继续进行。
替代方法
相反,登录 API 网关路由可以同时设置 SignedCookie 和一个单独的 Cookie 来存储 JWT 令牌,其中 Cookie 在 pre-configured 边缘 Lambda 验证并添加到授权 header,然后将请求转发到 API 网关。
我正在为我的网络应用程序使用以下技术栈
- CloudFront 作为代理和 CDN
- S3 指向 CloudFront 以服务 AngularJS 应用程序
- APICloudFront for REST 的网关来源API
- Cognito UserPools with CognitoAuthorizer 在 API Gateway 中进行身份验证
为了存储 Web 应用程序用户 session,我通常将 Cognito 发布的 JWT 存储在 Client-Side Cookie、HTML5 LocalStorage 或 SessionStorage 中。
不过,我很想知道 CloudFront 签名 Cookie 可以为 Web 应用程序提供 session 状态。我希望使用签名 Cookie 来存储 JWT 并使用 Edge Lambda 将签名 Cookie 映射到授权 Header 以验证 API 网关。我有兴趣知道
- 使用 CloudFront 签名的 Cookie 来存储 JWT 是否可行?
- 在 Web 应用程序的签名 Cookie 中存储 session 状态是一种好方法吗?
- 如果是这样,围绕它的最佳做法是什么?我不确定使用 Edge Lambda 是正确的方法。
CloudFront 签名 Cookie 无法存储自定义数据。因此,无法将发布的 AWS Cognito UserPool id_token 存储在签名 Cookie 中。因此,被质疑的方法无法继续进行。
替代方法
相反,登录 API 网关路由可以同时设置 SignedCookie 和一个单独的 Cookie 来存储 JWT 令牌,其中 Cookie 在 pre-configured 边缘 Lambda 验证并添加到授权 header,然后将请求转发到 API 网关。