繁体   English   中英

当我发送超过过期日期的令牌时,为什么会收到 401 错误?

[英]Why do I get a 401 error when I send a token beyond its expiration date?

我在我的项目中使用了jwt,我有一系列通用的方法,但是由于某种原因,我需要在请求者的header中发送令牌。 发送令牌时,如果它的过期日期已过,它会给出错误 401,并且根本不进入该方法。

该方法没有 Authorize 过滤器,并且此问题虽然根本没有 Route,但如果 header 中有令牌,则返回 401。

在到达 Routing 中间件之前,jwt OnAuthenticationFailed 事件捕获了它 中间件的顺序也观察 Net core project 3.1

邮差

我的方法

您需要使用声明使用 jwt 重新生成令牌。

你用的是什么前端脚本? jQuery 还是 angular? 如果是 jQuery 则需要使用 jQuery ajaxprefilter。 这将在对服务器端进行实际调用之前执行。

因此,如果令牌过期,将在 ajaxprefilter 中进行检查。

如果过期,在 aap.net 核心中间件端调用声明并重新生成令牌。 然后将进行原始调用。

为了找出这种行为的原因,我找到了这篇文章,它解释了令牌身份验证背后发生的过程。

ASP.NET Core 中的 JWT 不记名认证中间件背后

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM