【问题标题】:AWS Congito .NET Core JWT LambdaAWS Cognito .NET Core JWT Lambda
【发布时间】:2020-06-04 03:46:03
【问题描述】:

我们目前有一个使用 AWS Cognito 登录的 .NET Core 3.1 应用程序 - 一切正常。

但是,我们正在努力获取访问令牌 (JWT),然后我们可以将其传递给 Lambda 函数的请求。我发现的所有指南要么已经过时,要么缺少一些重要的东西。

如果我们可以自动获取令牌,然后还可以根据用户声明或类似的要求检索它,那就太好了。然后,我们可以将 Bearer 令牌添加到通过 API 网关调用 Lambda 函数的请求标头中。

以下是我所拥有的,但我有两个问题:

  1. 如果我故意提供虚假信息,它不会提供错误。这是正确的吗?
  2. 我不知道如何从 PageModel 获取令牌,以便在向 Lambda 函数发出 GET 请求之前将令牌添加到标头。

【问题讨论】:

    标签: c# asp.net-core aws-lambda jwt amazon-cognito


    【解决方案1】:

    您无法在此处真正提供密钥,因为 AWS 会经常更改它。解决方案是让代码动态查找它。 This answer to a similar question 应该可以帮到你。

    【讨论】:

    • 谢谢!早上我会先看看。
    • 在链接上的示例中,他们使用的是 nodejs。请问有没有办法通过 c# 控制器获取不记名令牌?
    • 您是否正在寻找如何在服务器上获取不记名令牌?
    • 可能是的,说实话,不确定最佳实践是什么。我们目前使用“页面”,以便每个 cshtml 页面都有一个带有所有 c# 的 .cs 页面。然后将向 lambda 函数发送一个 get/post/put 等请求,其中包含正确的标头,包括访问令牌。
    • 令牌应该在授权请求头中。我的问题是你打算用它做什么。引用的解决方案是将令牌作为请求的一部分进行验证,因此如果令牌无效或不可验证,用户将收到 401 响应。一旦你过去了,Request.User 将拥有有关用户的身份信息。
    【解决方案2】:

    最后它只需要在页面控制器中在线。

    var it = HttpContext.GetTokenAsync(OpenIdConnectParameterNames.IdToken);   
    

    然后可以将其结果放入请求授权标头中。

    【讨论】:

      猜你喜欢
      • 2018-10-14
      • 2021-06-11
      • 2019-04-14
      • 2017-06-03
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 2022-07-15
      相关资源
      最近更新 更多