我正在为我的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 回答
CloudFront签名Cookie无法存储自定义数据 . 因此,无法在签名Cookie中存储AWS Cognito UserPool发出的id_token . 因此,质疑的方法无法继续进行 .
Alternative Approach
相反,登录API网关路由可以将SignedCookie和单独的Cookie设置为存储JWT令牌,其中Cookie在预配置的Edge Lambda中进行验证,并在将请求转发到API网关之前添加到Authorization标头 .