首页 文章

CloudFront签名Cookie保持API网关访问的会话状态

提问于
浏览
1

我正在为我的Web应用程序使用以下技术堆栈

  • CloudFront作为代理和CDN

  • S3设定为CloudFront以提供AngularJS应用程序

  • APIGateway源自CloudFront for REST API

  • Cognito UserPools与CognitoAuthorizer一起在API网关中进行身份验证

为了存储Web应用程序用户会话,我通常将Cognito中发布的JWT存储在客户端Cookie,HTML5 LocalStorage或SessionStorage中 .

但是我很想知道CloudFront Signed Cookies可以为Web应用程序提供会话状态 . 我希望使用签名的Cookie来存储JWT并使用Edge Lambda将签名Cookie映射到授权标头以验证API网关 . 我很想知道

  • 使用CloudFront Signed Cookies来存储JWT会起作用吗?

  • 在Web应用程序的签名Cookie中存储会话状态是一种好方法吗?

  • 如果是这样,围绕它的最佳做法是什么?我不确定使用Edge Lambda是正确的方法 .

1 回答

  • 0

    CloudFront签名Cookie无法存储自定义数据 . 因此,无法在签名Cookie中存储AWS Cognito UserPool发出的id_token . 因此,质疑的方法无法继续进行 .

    Alternative Approach

    相反,登录API网关路由可以将SignedCookie和单独的Cookie设置为存储JWT令牌,其中Cookie在预配置的Edge Lambda中进行验证,并在将请求转发到API网关之前添加到Authorization标头 .

相关问题