Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5新身份验证:获取当前用户以及如何实现角色?_Php_Authentication_Laravel_Laravel 5 - Fatal编程技术网

Php 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.

我目前正在试用新的Laravel 5,并获得了有效的身份验证(注册/登录)

要在我的控制器中获得经过身份验证的用户,我当前将
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完美配合或独立工作:


如果您想进行自己的自定义身份验证,则需要保留Laravel 5中的用户模型以及所有依赖项。之后,您将能够在控制器中登录您的用户。别忘了在控制器的名称空间后面加上(使用Auth;)。

您是否为用户角色库创建了筛选路由?我一直在使用它,但没有facade?