我的中间件正在保护路由,但在成功登录后无法正常工作

时间:2016-06-02 21:05:22

标签: php laravel laravel-5.2

我的代码有问题。我遇到了同学无法解决的问题。这是问题所在:

我的中间件在保护路由方面正常工作。在我成功登录后,它将我重定向到我的leader.blade.php,在我的leader.blade.php中,我有一个包含不同刀片的导航栏,但在我点击其中一个导航后,我的系统会重定向到再次登录。 / p>

我不知道为什么在登录成功后我再次被重定向到我的登录页面。我想,我记得我的问题是func'或者cookies或crsf_token,我不知道。任何帮助将不胜感激。

    <?php

namespace App\Http\Middleware;

use Closure;

class notLeader
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(!($request->user['acclvl'] == 'Leader' || $request->user['acclvl'] == 'Leader')) {
            return redirect('/login');
        }


        return $next($request);
    }
}

这是我的中间件

Route::group(['middleware' => ['web', 'isLeader']], function () {
    Route::resource('announces-admin', 'AnnouncementController@annadmin');
});

这是我的路线(仅供测试)

<section class="col-lg-12 connectedSortable">


          <div class="box">




           <div class="box box-info">
            <div class="box-header with-border">
              <i class="fa fa-bell-o"></i>
              <h2 class="box-title">Announcements</h2>
              <div class="box-tools pull-right">
                <button onclick="window.location.href='/announce'" class="btn btn-info btn-sm" data-toggle="tooltip" data-placement="bottom" title="New Announcement"><i class="fa fa-plus"></i></button>
                <button class="btn btn-info btn-sm" data-widget="collapse" data-toggle="tooltip" data-placement="bottom" title="collapse"><i class="fa fa-minus"></i></button>
              <!--   <button class="btn btn-info btn-sm" data-widget="remove"><i class="fa fa-times"></i></button> -->
              </div>
            </div><!-- /.box-header -->
            <div class="box-body">
              <div class="table-responsive">
                <table class="table no-margin">
                  <input type="hidden" name="_token" value="{{ csrf_token() }}">
                  <tbody>  @foreach ($data as $row) 
                  <tr>


                      <h2 style="color: #00a3cc;">{{ $row->subject }}</h2>
                      <h5>Posted by:   <b style="color:#008CBA;">{{ $row->poster }}</b>, {{ $row->created_at }}</h5>
                      <p style="font-size:1.20em;font-weight:450;" class='item test'>{{ $row->message }}</p>
                      <span class="more_text">
                        <a href="{{ url('viewspec', $row->id )}}" class="read_more"> <br>Continue Reading >></a><br><hr>
                      <br>

                  </tr>  @endforeach

                </tbody>
                </table>{!! $data->render() !!}
              </div><!-- /.table-responsive -->
            </div><!-- /.box-body -->

        </section><!-- /.Left col -->

这是我的announces-admin.blade.php(位于leader.blade.php的导航栏中)

1 个答案:

答案 0 :(得分:0)

尝试此操作(如果是中间件,请在顶部添加use Auth;

public function handle($request, Closure $next)
    {
    if(Auth::check() && Auth::user()->acclvl != 'Leader') {
                return redirect('/login');
            }
    return $next($request);
}
相关问题