Laravel 5.2,如何从任意路由访问用户信息
Laravel 5.2, how to access users information from any route
我已经设法根据用户凭据将用户重定向到网站的另一个 views/parts,假设用户想查看他们的个人资料,没问题,或者添加一个新的 "post"。
路线:
/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
中间件中声明每个需要session的路由,所以检查里面是否有contact
路由。
Route::group(['middleware' => 'web'], function(){
// contact route here
});
我已经设法根据用户凭据将用户重定向到网站的另一个 views/parts,假设用户想查看他们的个人资料,没问题,或者添加一个新的 "post"。
路线:
/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
中间件中声明每个需要session的路由,所以检查里面是否有contact
路由。
Route::group(['middleware' => 'web'], function(){
// contact route here
});