关于http生命周期的理解

发布时间 2023-12-24 03:03:45作者: 79524795

我的login控制器继承了基类BaseController,基类中有JWT验签

每当运行login控制器中的方法时候,触发JWT验签,验签失败即跳转至'/admin/login/index'方法

跳转至改方法之后,为什么不会处罚再次验签?

解答:

安排~

在典型的 HTTP 请求生命周期中,每个请求都是独立的,请求完成后,其相关的状态信息和变量会在请求结束时被清理。因此,当一个请求处理完毕后,新的请求开始时,不会保留前一个请求的状态信息。

在代码中,verifyJWT 方法中的逻辑是在每次请求处理时执行的,而且该方法似乎是在基类的构造方法中调用的。在一个请求生命周期内,基类的构造方法只会被调用一次。这就解释了为什么在新的请求开始时,不会再次经过 verifyJWT 方法,除非该方法在新请求中被显式调用。

如果在 verifyJWT 方法中执行了跳转,并且该跳转导致了一个新的请求,那么在新的请求中会再次执行该方法。但通常情况下,这是由于在当前请求中执行了跳转或重定向,而不是在正常的请求处理流程中。

如果你在控制器或中间件中手动调用了 verifyJWT 方法,那么就会再次执行。否则,在正常的请求处理过程中,新的请求开始时不会再次执行之前请求的方法,因为它们属于不同的请求生命周期。