Laravel 5.2,如何从任何路由访问用户信息


Laravel 5.2, how to access users information from any route

我已经设法根据用户凭据将用户重定向到网站的不同视图/部分,说用户想查看他们的个人资料,没问题,或者添加新的"帖子"。

路线:

/admin <--- only admins no problem
/myprofile <-- only register users no problem
/admin/reports <-- only admins with certain access... no problem

foo.com/显示一个常规主页,当用户登录时,他们会被发送到foo.com/home我可以访问用户信息,但是如果用户转到foo.com/contact我丢失了用户信息,它会显示用户没有登录。

因此,用户转到登录名并在未登录的情况下重定向到foo.com/home,因为用户已经登录。

因此,为了让我访问用户信息,我必须将此代码添加到ContactController.php

public function __construct(){
    $this->middleware('auth');
}

但是通过这样做,任何其他机构都必须登录或注册才能访问我的/contact页面,我们不希望这样,对吗?

那么我们如何检查用户是否已登录以及从网站上的任何页面使用了哪些凭据,同时向普通访客授予访问权限。

假设我们有/contact/services/products等。这些页面不需要身份验证,但我们希望检查用户是否已登录并访问该信息。

routes.php文件中,您需要将需要会话的每个路由声明到web中间件中,因此请检查contact路由是否在里面。

Route::group(['middleware' => 'web'], function(){
   // contact route here
});