使用中间件,造成验证码可以显示到前端页面但是 无论输入什么都是错误的验证码
来源: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改了 就好了
10
相似问题