如果未经验证,我想将用户重定向到我的索引页(即登录页)
似乎无法使它工作,我真的对路由感到困惑。
家庭控制器
class HomeController extends Controller
{
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return redirect()->guest('/');
}
}
路由
// Index
Route::get('/', [
'as' => 'index',
'uses' => 'UserController@index'
]);
用户控制器
如您所见,路由将在索引功能处重定向到用户控制器,如下所示:
*具有_construct(),因此它使用中间件“auth”。
public function __construct()
{
$this->middleware('auth');
}
public function index(){
// If user is logged
if(Auth::check()) {
// If user has NOT submitted information form redirect there, otherwise to categories
if(!Auth::user()->submitted_information)
return redirect()->route('information');
else
return redirect()->route('categories');
}
else
return view('index', ['body_class' => 'template-home']);
}
处理程序。php
以及auth中间件(Exceptions/Handler.php)中未经验证的函数
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->route('index');
}
我现在得到的错误如下:
InvalidArgumentException in UrlGenerator.php line 304:
Route [index] not defined.
发生此错误的原因是
返回重定向
我错过了什么?如果您需要更多信息,请随时询问。
编辑:到目前为止,如果我从UserController中删除__construct()
方法,并在web.php
中插入所有要使用的中间件
的路由,它就可以工作。
举个例子
Route::get('/categories', [
'as' => 'categories',
'uses' => 'UserController@showCategories'
])->middleware('auth');
但我试图找到,没有指定使用什么中间件,自动使用它。
试试看
Route::get('/','UserController@index',['middleware'=>'auth'])->name('index);
按照以下代码构建您的路线:
Route::group(['middleware' => ['auth']], function() {
// uses 'auth' middleware
Route::resource('blog','BlogController');
});
路由::get('/mypage','HomeController@mypage');
打开名为RedirectIfAuthenticated的中间件类,然后在handle Function中编写以下代码:
if (!Auth::check()) {
return redirect('/mypage'); // redirect to your specific page which is public for all
}
希望对你有用。
我在auth中间件方面遇到了一些问题。我将中间件放在一个路由组中,并回滚了users表。我希望应用程序将我重定向到我的登录/搜索页面,但它没有这样做,它只是给了我“尝试获取非对象的属性”,它指的是我的仪表板视图中的函数(我不应该访问该函数)。 这是我的路线代码: 以下是我的观点: 另外,我不确定从数据库中删除用户是否意味着Laravel将自动删除用户会话。 谢谢你的帮助!
我的管理员控制器扩展了控制器类,在那里我使用方法加载视图页面并传递保护。config/auth.php也通过添加管理员保护和提供程序进行了修改。在app/Actions/Fortify文件夹中,我添加了AttemptToAuthenticate和ReDirectIfTwoFactorAuthenticate类,并更改了命名空间。我的管理员控制器还扩展了Guard。用户的重定向中间件和管理员的重定向
问题内容: 编辑:忘记提及我与AngularJs在一起仅一周了,因此,如果您看到某些东西,您认为应该做得更好,并且与问题无关,请随时在评论部分告诉我。 好的,所以我有我的身份验证控制器和提供程序,由于它们与问题范围无关,因此将不显示。然后,我有一个拦截器来检查拨打电话时用户是否已通过身份验证。如果是这样,我将请求的标头设置为包括用户的Token(如果没有),则将用户重定向到登录页面,甚至不向服务器
我认为百里叶不知道用户何时登录,我已经隐藏了两个
问题内容: 我正在尝试使用node.js,express和passport.js建立登录机制。登录本身工作得很好,会话也可以很好地存储在redis上,但是在提示用户进行身份验证之前,将用户重定向到他从那里开始时确实存在一些麻烦。 例如,用户跟随链接,然后重定向到,但是我希望他再次重定向回。 这样做的目的是,如果用户随机访问需要首先登录的页面,则应将其重定向到提供其凭据的/ login站点,然后再重
在不生成Laravel默认身份验证控制器的情况下,我创建了自己的登录和注册控制器。 我的路线是这样的 用于登录 登记 一切都很好。现在我需要一件事。每当我放置中间件时,一个未经身份验证的用户将被重定向到我的自定义登录页面路由到。 如何做到这一点?