c# - 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 密钥来获取请求正文?
解决方案
我目前也在尝试这个。
是的,我认为 Jwt 将是一个字符串。
我认为可行的是,如果您将webKey
放入令牌验证参数中
var validationParameters = new TokenValidationParameters
{
IssuerSigningKey = webKey
//Some more parameters may be needed here for extra stuff like ClockSkew
};
使用安全令牌处理程序验证令牌将返回ClaimsPrinciple
带有格子文档中提到的声明的aiat
和request_body_sha256
var handler = new JwtSecurityTokenHandler();
var claimsPrinciple = handler.ValidateToken("someJwtString", validationParameters, out var validatedToken);
如果验证失败将出现异常
推荐阅读
- python - 基于组的 Pandas 子集
- mysql - 按开始和/或结束日期对 MySQL 中的事件进行排序
- algorithm - 你知道通过一系列对齐的圆来建模椭圆的算法吗
- c - 我无法更改全局变量
- dax - Dax 公式根据项目组区分上个月的订阅数
- json - Pandas DataFrame 到 YAML
- node.js - 将 ESP32 连接到 Google Cloud Platform 时来自 Mongoose OS 的“无效 gcp.key”
- javascript - Spring Boot + React 中的路径变量问题
- database-performance - ArangoDB 中的 UPDATE 出现奇怪的性能问题
- postgresql - 如何在同一功能中更新选定的记录集?