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或他们自己一起完美地协同工作: