使用API Gateway V2使用AWS授权器(Cognito或Lambda)设置HTTP Only cookie.&



我有一个现有的API网关->λ→正在工作的DynamoDB RESTful API。

我想设置一个登录系统来使用Cognito + Cognito(或自定义lambda) Authorizer访问这个API

我设置了Cognito,并且能够注册一个用户(并且还使用返回的code点击回调URL以交换access_tokenid_token)。

我的UI是一个React应用程序,我没有使用Amplify。

每个教程都建议您将回调设置为UI (SPA)并解析出令牌以在进一步的API调用中使用。这并不好,因为您的令牌是公开的。

我想在后端仅http cookie中设置此令牌,并在击中Cognito(或自定义)授权器时对其进行验证。

我还想检查令牌是否过期(1小时),并使用存储的refresh_token刷新它,并在相同的仅限http的cookie中再次为用户设置它。

Cognito Authorizer是否自动执行此操作?如果没有,我如何在授权器中做到这一点,这样我就可以避免每个lambda中的重复代码(因为授权器只验证然后将请求传递给lambda,我认为你不能设置响应头)。

这可能吗?

据我了解,Cognito目前不支持此功能。

在我看来,最好的方法实际上可能是编写一个简单的身份验证/身份微服务,它可以负责令牌的生成和管理,从而从前端应用程序中抽象出Cognito。这个微服务还可以负责刷新令牌。

然后你可以将这些令牌从你的身份验证/身份微服务传递到任何与Cognito授权器连接的API网关。

最新更新