как обезопасить маршруты laravel-5.8 - PullRequest
1 голос
/ 09 июня 2019

привет, я хочу, чтобы только администратор мог получить доступ к маршруту filecontroller, или пользователь не может получить доступ, набрав URL:

это маршруты:

  Route::group(['middleware' => ['web','auth']], function(){
     Route::get('/', function () {
       return view('welcome');
     });

     Route::get('/home', function(){
   if (Auth::user()->admin == 0) {
    return view('home');
   } else {
    $users['users'] = \App\User::all();
    return view('layouts.master', $users);
   }
     });

     Route::resource('file','FileController');

  });

Пользователь не может получить доступ к маршруту:: ресурс ( 'файл', 'FileController');если он знает URL

Ответы [ 2 ]

3 голосов
/ 09 июня 2019

использование промежуточное ПО

Следующая команда создает новое промежуточное ПО с именем Admin

php artisan make:middleware Admin

Это создает файл с именем Admin.php в каталоге app / Http / Middleware, который выглядит как

<?php namespace App\Http\Middleware;

use Closure;

class Admin {

    public function handle($request, Closure $next)
    {

        if ( Auth::check() && Auth::user()->isAdmin() )
        {
            return $next($request);
        }

        return redirect('home');

    }

}

Затем необходимо добавить промежуточное ПО администратора в файл приложения / Http / Kernel.php

protected $routeMiddleware = [
    'auth' => 'App\Http\Middleware\Authenticate',
    'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
    'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
    'admin' => 'App\Http\Middleware\Admin', // this line right here
];

Добавление промежуточного программного обеспечения администратора в маршрут.

 Route::resource('file','FileController')->middleware(Admin::class)

Наконец, вам нужно добавить метод isAdmin, который мы создали выше, в вашу модель User, чтобы проверить, является ли пользователь администратором.

class User extends Model
{
    protected $casts = [
        'is_admin' => 'boolean',
    ];

    public function isAdmin()
    {
        return $this->is_admin;
    }
}
1 голос
/ 09 июня 2019

вы можете использовать промежуточное ПО laravel

URL: https://laravel.com/docs/5.8/middleware или https://www.tutorialspoint.com/laravel/laravel_middleware.htm

и использовать для маршрутизации

Route::group(['middleware' => 'isAdmin'], function(){
    Route::get('user', 'user\UserController@index');
});
...