【发布时间】:2021-01-03 08:24:38
【问题描述】:
我使用 Laravel 5.6 创建了一个简单的身份验证 如果登录用户进入登录页面,我正在尝试将登录用户重定向到仪表板,如果他们进入仪表板页面,我正在尝试将访客重定向到登录页面。
我正在使用 laravel 默认中间件(RedirectIfAuthenticated):
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/dashboard');
}
return $next($request);
}
}
这是我的路线:
Route::group([ 'middleware' => ['guest','auth:lecturer'] ], function(){
Route::get('/', "ViewCont\Auth\LoginController@login")->name("login");
Route::post('/login', "FuncCont\Auth\LoginController@login")->name("login_f");
Route::get('/register', "ViewCont\Auth\LoginController@register")->name("register");
Route::post('/register', "FuncCont\Auth\LoginController@register")->name("register_f");
});
Route::group([ 'middleware' => ['check.user.session','auth:lecturer'], 'prefix' => 'dashboard' ], function(){
Route::get('/', "ViewCont\Admin\DashboardController@index")->name("dashboard");
});
当登录用户尝试访问登录页面时,一切正常,他们重定向到仪表板页面。但是,当访客尝试访问登录页面时,页面出现错误:页面未正确重定向
我做错了什么?
【问题讨论】:
-
你正在使用一个中间件,如果他们通过了身份验证,就会将他们重定向,而如果他们没有通过身份验证,你会使用一个中间件......并且你有不同的警卫在玩
-
我认为 return $next($request) 会继续这个过程
-
为什么要将
auth中间件应用于登录路径?你是说你必须通过身份验证才能登录,但要通过身份验证你必须登录......