无法访问Laravel上的Auth用户信息

时间:2018-09-12 23:40:50

标签: laravel

我使用Laravel 5.4创建了使用laravel东西创建的身份验证系统保护程序,我还创建了基于角色的注册表单。

到目前为止,到目前为止,所有方法都可以使用,但是例如,我只希望某些页面仅对管理员可用,因此我创建了一个新用户页面,以允许管理员创建用户。

我的RegisteruserControoller:

 namespace App\Http\Controllers;

use App\Proveedor;
use App\RubroProveedor;

use Illuminate\Http\Request;
use App\Http\Requests\StoreProveedor;
use App\Http\Requests\UpdateProveedor;

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redirect;

use Alert;
use Exception;
use Auth;

class RegisteruserController extends Controller
{

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct() {

    $this->middleware('role:admin'); 

}


public function index(Request $request)
{

    return view('usuarios.registeruser');
}

这里的问题是,如果我总是在构造IM中使用中间件时,总是被要求一次又一次地登录,并且我需要禁用该中间件,但要保持警惕,以仅允许管理员用户创建新用户。

我不确定我是否清楚,对不起我的英语不好。

我创建了一个名为CheckRole的中间件:

    <?php

namespace App\Http\Middleware;

use Closure;

class CheckRole
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next, $role)
    {


        if (! $request->user()->hasRole($role)) {
            abort(401, 'This action is unauthorized.');
        }
        return $next($request);
    }
}

0 个答案:

没有答案