1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 嗨,sschlegelmilch - 谢谢你添加了额外的细节!
以下是我如何设置的。
- 在静态应用程序上实现Cognito。全面披露,我从未做过这个,但目标是在用户登录时生成JWT。根据我上面链接的Cognito文档显示,默认情况下成功登录后会生成JWT,因此我希望这一步不会太难。
- 当用户成功登录后,将上面生成的JWT设置为Cookie。
- 在CloudFront中,为 /pricing (我是随意设想的,但应保护的一些路径)创建一个新的缓存行为。在此行为中,您需要使用此 CloudFront 函数处理检查JWT并验证请求是否应允许/拒绝。此Lambda可能需要进行一些小修改,以检查Cookie值中的JWT令牌,因为我认为它默认检查查询字符串中的JWT,但这并不难。如果卡住,请告诉我。
- 更改上面的CloudFront函数的默认错误行为,以发出重定向回Cognito登录页面。
现在,用户将访问您的站点,并且可以正常浏览。当他们转到Cognito登录并成功登录时,他们将获得JWT Cookie。当他们转到受保护的路径(/pricing)时,他们将命中检查其JWT令牌的Lambda。如果Cookie存在且JWT令牌有效,则允许请求通过,并且用户可以查看受保护的内容。如果JWT令牌丢失或无效,则用户将被重定向回Cognito登录页面。
再次说明,我个人没有设置过这个,但我相信这应该可以工作。