【问题标题】:AWS Signer support for Flutter对 Flutter 的 AWS 签名者支持
【发布时间】:2021-04-20 17:15:25
【问题描述】:

我们正在使用 Flutter 构建一个连接到 WebSocket (AWS) 的移动应用程序。 用户将使用 AWS Amplify Auth 注册/登录应用程序。身份验证成功后,应用程序将建立与 AWS 上的 WebSocket 的连接。 为了确保与 WebSocket 的连接安全,我们希望使用 AWS Signer v4 对 URL 进行签名。但是我们在 AWS Signer v4 for Flutter 上找不到任何支持。 请为我们提供帮助,以便我们可以通过 Flutter 插件等使用 Signer v4。

谢谢

【问题讨论】:

  • 你有什么消息吗?我有完全相同的用例,不知道该怎么做。

标签: amazon-web-services flutter dart signer


【解决方案1】:

我的用例与您几乎完全相同。我已经编写并发布了一个简单的库,它可以做你想做的事,创建一个预签名的 URL 来连接到由 IAM 保护的 AWS WebSocket API 网关:

https://github.com/MohammedNoureldin/aws_url_signer

基本上你会得到你的签名网址,就像这样:

String getSignedWebSocketUrl(
    {String apiId,
    String region,
    String stage,
    String accessKey,
    String secretKey,
    String sessionToken})

【讨论】:

  • 我做了一些修改以使其适用于 AWS Transcribe API。不确定该服务的格式是否略有不同,或者 Mohammed's 中的代码是否已过时......检查差异进行比较。 github.com/Air-Craft/aws_url_signer
【解决方案2】:

你可以使用包https://pub.dev/packages/sigv4
一个 Dart 库,用于使用 Signature Version 4 对 AWS 请求进行签名。
代码sn-p

final client = Sigv4Client(
  keyId: 'your_access_key_id',
  accessKey: 'your_access_key',
  region: 'eu-west-1',.
  serviceName: 'execute-api',
);

【讨论】:

  • 这个库由于某些原因除了“主机”之外还签署了一些标头,这是 aws 想要的 websockets。它也不再维护:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 2011-04-12
相关资源
最近更新 更多