Laravel 身份验证重定向无效
Laravel Auth redirect not working
我正在使用 Laravel v5.2.39。如果您已登录,我只想重定向到仪表板。如果您手动更改 URL,它会将您重定向到主屏幕。我正在使用 auth 中间件,但它不起作用。有帮助吗?
我的 routes.php 文件:
Route::get('/', function () {
return view('welcome');
})->name('home');
Route::get('dashboard', [
'uses' => 'UserController@getDashboard',
'as' => 'dashboard',
'middleware' => 'auth'
]);
我的UserController.php:
public function getDashboard(){
return view('dashboard');
}
和授权中间件:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->route('home');
}
}
return $next($request);
}
我不知道,有什么问题。我也有一些登录和注册,但我不认为这是问题。如果有人想看,写信给我。
祝你今天愉快,谢谢。
如上所述,你试过这样的方法吗?
Route::group(['middleware' => 'auth'], function () {
Route::get('dashboard', 'UserController@getDashboard')->name('dashboard');
});
或者您可以像这样在 class 的构造函数中添加中间件:
public function __construct() {
$this->middleware('auth');
}
另请参阅 the laravel documentation on using middleware with routes。
尝试使用 'middleware' => 'auth:web' 代替 'middleware' => 'auth'
嘿,我不清楚你的问题,但这会对你有所帮助,
当你选择项目路径 localhost/project/
时,它将重定向到 localhost/project/home
URL 因为 URL 你可以分配任何函数
Route::get('/', function () {
return redirect('home');
});
我正在使用 Laravel v5.2.39。如果您已登录,我只想重定向到仪表板。如果您手动更改 URL,它会将您重定向到主屏幕。我正在使用 auth 中间件,但它不起作用。有帮助吗?
我的 routes.php 文件:
Route::get('/', function () {
return view('welcome');
})->name('home');
Route::get('dashboard', [
'uses' => 'UserController@getDashboard',
'as' => 'dashboard',
'middleware' => 'auth'
]);
我的UserController.php:
public function getDashboard(){
return view('dashboard');
}
和授权中间件:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->route('home');
}
}
return $next($request);
}
我不知道,有什么问题。我也有一些登录和注册,但我不认为这是问题。如果有人想看,写信给我。
祝你今天愉快,谢谢。
如上所述,你试过这样的方法吗?
Route::group(['middleware' => 'auth'], function () {
Route::get('dashboard', 'UserController@getDashboard')->name('dashboard');
});
或者您可以像这样在 class 的构造函数中添加中间件:
public function __construct() {
$this->middleware('auth');
}
另请参阅 the laravel documentation on using middleware with routes。
尝试使用 'middleware' => 'auth:web' 代替 'middleware' => 'auth'
嘿,我不清楚你的问题,但这会对你有所帮助,
当你选择项目路径 localhost/project/
时,它将重定向到 localhost/project/home
URL 因为 URL 你可以分配任何函数
Route::get('/', function () {
return redirect('home');
});