中间件进程检查时的Laravel重定向

时间:2015-10-29 11:23:57

标签: authentication laravel-5 middleware

我正在开发业务目录的laravel Web应用程序。

这是我的情景。

  1. http://localhost/genie-works/devojp/customer //用户搜索商家关键字

  2. http://localhost/genie-works/devojp/customer/search-result?keyword=apple&searchcity=1此页面显示结果。

  3. 此处列出了过多的商家数据并发布了查询功能。

  4. 点击帖子时,查询按钮页面转到http://localhost/genie-works/devojp/customer/post-enquiry/ {bisinjessid} /

  5. 将查询中间件作为身份验证的帖子查询页面。

  6. 当用户未登录中间件重定向到登录页面http://localhost/genie-works/devojp/customer并显示登录表单时

  7. 输入登录详细信息后,
  8. 需要重定向到http://localhost/genie-works/devojp/customer/post-enquiry/ {bisinjessid} /此页面。

  9. 但我尝试使用Redirect :: back将其重定向到客户页面(http://localhost/genie-works/devojp/customer

    如何通过重定向到我的最后一页来解决此问题....

  10. 谢谢

    中间件..

     public function handle($request, Closure $next)
     {
        if (!Auth::check()) {
            return redirect()->intended(route('cust_index'))->with('activelogin','Succesfully LoggedOut !!!');
            }
        return $next($request);
     }
    

    控制器..

    public function custdologin(){
        $userdata=array(
        'username'=>Input::get('email'),   // getting data from form
        'password'=>Input::get('password')   // getting data from form
        );
        if(Auth::attempt($userdata)){
            switch (Auth::user()->user_type) {
                case '2':
    
                    return Redirect::to(route('myaccount'));
                    break;
                case '3':
                    return back();
                    break;
                default:
                    Auth::logout();
                    return Redirect::to(route('business_login'))->with('message','Check Your Entries!!');
                    break;
            }
        }   
        else
        return Redirect::to(route('business_login'))->with('message','Check Your Entries!!');
    }
    

1 个答案:

答案 0 :(得分:1)

在使用重定向的中间件中,使用以下命令:

return redirect()->intended('put a default url'); // i.e: '/dashboard'

这会将用户重定向到他想要去的目标网址,而无需登录。Check more here(在Manual Authentication代码段中)