我的代码有问题。我遇到了同学无法解决的问题。这是问题所在:
我的中间件在保护路由方面正常工作。在我成功登录后,它将我重定向到我的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的导航栏中)
答案 0 :(得分:0)
尝试此操作(如果是中间件,请在顶部添加use Auth;
)
public function handle($request, Closure $next)
{
if(Auth::check() && Auth::user()->acclvl != 'Leader') {
return redirect('/login');
}
return $next($request);
}