Php Laravel 5新身份验证:获取当前用户以及如何实现角色?
我目前正在试用新的Laravel 5,并获得了有效的身份验证(注册/登录) 要在我的控制器中获得经过身份验证的用户,我当前将Php Laravel 5新身份验证:获取当前用户以及如何实现角色?,php,authentication,laravel,laravel-5,Php,Authentication,Laravel,Laravel 5,我目前正在试用新的Laravel 5,并获得了有效的身份验证(注册/登录) 要在我的控制器中获得经过身份验证的用户,我当前将Guard注入控制器操作: use App\Http\Controllers\Controller; use Illuminate\Contracts\Auth\Guard; class ClientController extends Controller { /** * Display a listing of the resource.
Guard
注入控制器操作:
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\Guard;
class ClientController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index(Guard $auth)
{
return view('client.index', ['user' => $auth->user()]);
}
...
第一个问题:这是推荐的方式吗
第二个问题:我将如何实现某种角色/权限?类似于client.edit
,client.add
。。。幼虫5在这里提供了一些便利吗?
如何设置路由/控制器操作所需的角色/权限
我想我可能需要为此编写自己的中间件。关于如何解决这个问题,有什么建议吗?在花更多的时间在Laravel 5上之后,我可以回答我自己的问题: 注入
Guard
是推荐的方法吗?否:如果您需要在视图中访问Auth
,您可以这样做:
@if( Auth::check() )
Current user: {{ Auth::user()->name }}
@endif
这将使用Auth
facade。所有可用外观的列表位于config/app.php
的别名下:
如果我需要在我的控制器中进行Auth
,该怎么办?注入Guard
的实例(如问题中所示)是有效的,但您不需要这样做。您可以像在模板中一样使用Auth
facade:
public function index()
{
if(\Auth::check() && \Auth::user()->name === 'Don') {
// Do something
}
return view('client.index');
}
请注意,\
必须在外观名称之前,因为L5正在使用名称空间
我希望使用L5中的新身份验证机制拥有权限/角色:我使用新的中间件实现了一个轻量级权限模块,名为Laraguard。在Github上查看,并让我知道您的想法:
更新:为了完整起见,我想再提两个项目。它们提供了在DB中保存角色和权限所需的一切,并与Laraguard完美配合或独立工作: