Laravel 5 new auth:获取当前用户以及如何实现角色?

cgr*_*oss 21 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.
     *
     * @return Response
     */
    public function index(Guard $auth)
    {
        return view('client.index', ['user' => $auth->user()]);
    }
...
Run Code Online (Sandbox Code Playgroud)

第一个问题:这是推荐的方式吗?

第二个问题:我如何实现某种角色/权限?喜欢的东西client.edit,client.add......难道幼虫5提供某种方便起见,这里?如何为路由/控制器操作设置必要的角色/权限?

我想我可能需要为此编写自己的中间件.有关如何解决问题的任何建议?

cgr*_*oss 52

花一些时间在Laravel 5后,我可以回答我的问题:

注射Guard推荐的方式?否:如果您需要访问Auth你的观点,你可以这样做已经是这样的:

@if( Auth::check() )
    Current user: {{ Auth::user()->name }}
@endif
Run Code Online (Sandbox Code Playgroud)

这使用了Auth立面.所有可用外墙的清单都在config/app.php下面aliases:

如果我需要Auth在我的控制器中怎么办?注入的实例Guard中的问题的作品显示等,但你并不需要.您可以Auth像在模板中一样使用外观:

    public function index()
    {
        if(\Auth::check() && \Auth::user()->name === 'Don') {
            // Do something
        }
        return view('client.index');
    }
Run Code Online (Sandbox Code Playgroud)

请注意,\由于L5门面名称使用命名空间之前,需要.

我想在L5中使用新的auth机制获得权限/角色:我使用新的中间件实现了一个轻量级权限模块,它被称为Laraguard.在Github上查看并告诉我你的想法:https://github.com/cgrossde/Laraguard

更新:为了完整起见,我想再提两个项目.它们提供了在数据库中保存角色和权限所需的一切,并与Laraguard或他们自己一起完美地协同工作: