使用中间件,造成验证码可以显示到前端页面但是 无论输入什么都是错误的验证码

来源:6-13 利用后置中间件处理登录流-拦截器

慕九州2325446

2020-12-17

使用中间件,造成验证码可以显示到前端页面但是 无论输入什么都是错误的验证码, 经测试开启了session也能读取到session但是验证码一直走到验证码错误那个逻辑,搞不懂是为什么,难道是加了中间件读取不了或者验证码不返回一个session吗
把中间件代码注释掉 就可以正常读取到验证码 可以验证成功 但是一加上中间件就不行了

public function handle($request, \Closure $next) {

    //前置中间件
    $response = $next($request);
  if (empty(session(config("admin.session_admin"))) && $request->controller() !="Login" && $request->controller() != 'Verify' ){
       return redirect(url("login/index"));
  }

//// if(empty(session(config(“admin.session_admin”))) && !in_array($request->controller(),[“Login”, “Verify”])){
//// return redirect(“login/index”, 302);
//// }
return next(next(next(request);
//后置中间件

}
if (!captcha_check($captcha)){
        //验证码校验失败
        return show(config("status.error"),"验证码不正确".$captcha);
    }
写回答

1回答

慕九州2325446

提问者

2020-12-17

找到问题了,返回值的问题

 //前置中间件
       $response = $next($request);
     if (empty(session(config("admin.session_admin"))) && $request->controller() !="Login" && $request->controller() != 'Verify' ){
          return redirect(url("login/index"));
     }
////        if(empty(session(config("admin.session_admin"))) && !in_array($request->controller(),["Login", "Verify"])){
////            return redirect("login/index", 302);
////        }
       return $next($request);
       //后置中间件

   }

这是之前的代码


return $response;

把return改了  就好了

1
0

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1458 学习 · 1310 问题

查看课程