【问题标题】:How do i create separate accounts for user and admin in Laravel?如何在 Laravel 中为用户和管理员创建单独的帐户?
【发布时间】:2016-08-22 17:31:50
【问题描述】:

我正在 laravel 中开展一个项目,该项目需要访问者注册为简单用户才能以有限的权限访问网站公共部分的某些功能,并且还需要管理在管理部分执行操作的管理员帐户,例如创建、更新和删除出现在公共区域的内容。

如何在没有必要使用用户角色的情况下做到这一点?

【问题讨论】:

标签: laravel-5 user-registration


【解决方案1】:

为此,最短的方法是在您的 users 表中添加一列 is_admin(其值可以是:1 或 0)。

【讨论】:

    【解决方案2】:

    创建一个单独的列,例如管理员和用户的角色。然后创建一个单独的管理中间件组。 在App/http/middleware/adminmiddleware.php

    public function handle($request, Closure $next, $guard = null)
    {
        if(Auth::check())
        {
            if($request->user()->role=='Admin')
            {
               return $next($request);
            }
             return redirect('/home');
        }
    
        return redirect('/home');
    }
    

    添加要保护的路由

    Route::group(['middleware' => ['App\Http\Middleware\Adminmiddleware']], function () {
                    // Routes for only admins   
       });
    

    【讨论】:

      【解决方案3】:

      我这样做的方式...我只是设置了一个标志管理员和/或超级管理员,用于定义一些简单的中间件来限制路由访问(您可以在控制器中使用中间件,但我通常不这样做,我只需将中间件插入路由)。

      查看中间件文档:https://laravel.com/docs/5.2/middleware 您可以访问 Auth::user()->admin 以检查中间件,如果您需要更多信息,请询问我将复制粘贴我使用的一些代码。

      对于更复杂的角色,用户可以访问某些区域而有些不能,您必须查看 laravel 文档中的政策和授权: https://laravel.com/docs/5.2/authorization

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-09
        • 2021-03-05
        • 1970-01-01
        • 2021-08-22
        • 1970-01-01
        • 1970-01-01
        • 2016-12-23
        相关资源
        最近更新 更多