首页 > 解决方案 > C#格子Webhook如何解码

问题描述

我正在编写 Webhook 来处理 C# 中 Plaid 的自动小额存款。我不完全理解它应该如何工作,主要是因为这些示例是用我不知道的其他语言编写的。

我的第一个问题是格子会寄给我一个字符串吗?我猜 Jwt 是一个字符串?

我的代码:

            var token = "[someJwtstring]";
            var handler = new JwtSecurityTokenHandler();
            var jsonToken = handler.ReadJwtToken(token);

            //Get the Json Web Key from the API using the key id
            var verifyJwt = await _plaidRepo.VerifyWebHook(jsonToken.Header.Kid);
            var webkey = new JsonWebKey()
            {
                Alg = verifyJwt.Data.alg,
                Crv = verifyJwt.Data.crv,
                Kty = verifyJwt.Data.kty,
                Use = verifyJwt.Data.use,
                X = verifyJwt.Data.x,
                Y = verifyJwt.Data.y
            };

所以到这里我明白了......但是现在呢?我如何使用 Web 密钥来获取请求正文?

标签: c#plaid

解决方案


我目前也在尝试这个。

是的,我认为 Jwt 将是一个字符串。

我认为可行的是,如果您将webKey放入令牌验证参数中

var validationParameters = new TokenValidationParameters
{
  IssuerSigningKey = webKey
  //Some more parameters may be needed here for extra stuff like ClockSkew
};

使用安全令牌处理程序验证令牌将返回ClaimsPrinciple带有格子文档中提到的声明的aiatrequest_body_sha256

var handler = new JwtSecurityTokenHandler();
var claimsPrinciple = handler.ValidateToken("someJwtString", validationParameters, out var validatedToken);

如果验证失败将出现异常


推荐阅读