我用Laravel 5.6创建了一个简单的身份验证,我试图将登录用户重定向到仪表板,如果他们转到登录页面,并将访客重定向到登录页面,如果他们转到仪表板页面。
我使用laravel默认中间件(重定向):
<?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");
});
当登录用户尝试访问登录页面时,一切正常,他们重定向到仪表板页面。但是,当来宾尝试访问登录页面时,页面出错:页面没有正确重定向
我到底做错了什么?
应该有两种不同的中间产品RedirectIfAuthenticated
从登录页面重定向经过用户身份验证的用户,并将未经身份验证的用户重定向到登录页面。
因此,似乎您需要从登录页面中删除'auth:讲师'
中间件,因为它应该可供访客访问。
我有一个小难题,我正在尝试建立一个登录系统,它使用laravel auth脚手架将普通用户与管理员用户区分开来。 问题是它在中间件中处于无限重定向循环中。 在我按下登录按钮后,它会不断重定向到一条路线,问题是,我如何才能用“laravel方法”或任何其他方法解决这个问题。 这是我的控制器:1。基本家庭控制器: 主管理控制器-入口控制器: 登录控制器(默认的一个从auth scaffolding-由
我有一些流浪共享文件夹的问题,我的基本系统是Ubuntu13.10桌面。 下面是完整的过程后: 我的Vagrantfile配置是: 个性化文件是: 在Vagrant中启用了以下插件:
我正在用Laravel 8制作一个论坛,基本上每当用户在这个论坛上提问时,它应该被重定向到这个问题。 我还想使重定向过程基于问题的字段。 因此,为了做到这一点,我在方法的末尾添加了以下内容: 下面是看问题的路线: 然后我在控制器编码: 但现在的问题是,当我尝试添加新问题时,该问题将成功添加,但它会将我重定向到页面。重定向后的URL也如下所示: 正如你所看到的问题没有正确添加! 那么这里出了什么问题
我有多条带有评论的路线,当我单击“回复”时,我会被重定向到一条路线,在那里我可以发布对评论的回复。我如何正确地存储来自我所在地的路线,然后在发布回复后重定向回该路线? 我考虑将URL::previous作为参数传递,并将其存储到隐藏的输入中,但如果用户刷新页面,它将变为空。另一种方法可能是存储在会话中,但我不知道如何可靠地使其过期。。。
Localhost很好,但上传到服务器时不工作 %pdf-1.3 1 0 obj<>Endobj2 0 obj<>Endobj3 0 obj<>>/Mediabox[0.000 0.000 595.280 841.890]>>Endobj4 0 obj<>stream x 2 300 p@&b m-l l,br b 5 jr k drr f b k endstream endobj 8 0 obj
我试图设置cookie来定义用户首选的语言。我通过一个指向助手控制器的链接做到了这一点: /设置区域设置/{locale} 我知道这是正确的,因为如果我这样做: 它显示所选择的正确区域设置。所以下一步是使用中间件实际应用这个选择的语言环境,我把它命名为“设置语言环境”: 但如果我执行 在中间件中,它读取所有加扰的cookie。所以我的问题是为什么它会这样做,我如何从这里正确地读取cookie?