gpt4 book ai didi

c# - 在服务总线后面验证过期的 JWT token

转载 作者:行者123 更新时间:2023-11-30 16:50:14 30 4
gpt4 key购买 nike

我有一个 Web API 服务,允许用户创建新资源,例如:POST/api/resource。然后,该服务将创建请求放在服务总线上,并以 HTTP 202 Accepted 进行响应。

后台进程从服务总线获取消息并调用数据访问层来创建资源。然而,为了实现访问控制,数据访问层需要知道用户是谁,以确定他/她是否被允许创建该资源。 我无法将此授权逻辑移至前端 Web API 并为数据访问层使用受信任的子系统。

enter image description here

所以我的解决方案是获取数据访问层的访问 token 并将其与资源创建负载一起存储。但这带来了一个问题。由于消息可能会在重负载下处理得更晚,因此当后台进程尝试使用它时, token 可能已经过期。在那一刻也没有办法更新 token 。

所以我想在后端层处理时放宽对 token 有效性的要求。如果 token 有效(受信任的发行者等),但它已过期,我希望验证中间件接受 token 。

但是没有办法配置System.IdentityModel.Tokens.Jwt token 处理程序来验证过期的 token 。这可以在不编写我自己的 token 验证器的情况下完成吗?

我的方法错了吗?解决这个问题的可行替代方案是什么?

最佳答案

JWT 处理程序具有扩展点,允许您保留所有默认验证逻辑并仅覆盖您想要自定义的方面 - 在本例中为过期验证。您可以通过自己的 TokenValidationParameters.LifetimeValidator 实现来实现这一点。

关于c# - 在服务总线后面验证过期的 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347055/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com