我的问题更多是与使用Amazon Cognito设计Webhook架构有关。在浏览了关于webhook auth的hasura的文档后,我想到了以下设计。可行吗注意:AWS lambda在启用了授权的API网关后面。

amazon-web-services - Hasura Webhook使用Amazon Cognito进行身份验证-LMLPHP

现在,


您是否不认为应用程序进行身份验证的开销以及每个请求的hasura开销?
如果在hasura和cognito之间没有lambda,是否可以实现?
Hasura可以基于用户凭据向应用程序和Webhook提供身份验证以在Cognito中进行验证吗?


感谢您的反馈。

最佳答案

我和你有同样的问题。在尝试了许多方法之后,我认为使用Hasura JWT模式是一个好方法,并且无需任何复杂的配置即可很好地工作。看一下以下流程:


React App向Cognito请求令牌
Cognito触发PreTokenGeneration添加Hasura声明
React App从Cognito获得idToken(具有Hasura声明)


我认为将auth和数据分开会更好。

注意:
Cognito不支持声明值的dict类型。因此,您应该在Hasura jwt-secret中设置claims_format: 'stringified_json'。您可以看一下这个问题:https://github.com/hasura/graphql-engine/issues/1176

仅供参考:
* https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html
* https://docs.hasura.io/1.0/graphql/manual/auth/jwt.html#

08-07 12:12