Расположение аутентификации: api Middleware - PullRequest
0 голосов
/ 11 декабря 2018

Может кто-нибудь подсказать расположение промежуточного программного обеспечения auth:api?

Согласно промежуточному программному обеспечению auth:api, маршруты API защищены не нулевыми пользователями.

У меня есть поле boolean в пользовательской таблице с именем Is_Admin_Url_Accessible.Я хочу добавить условие в промежуточное ПО auth:api для некоторых маршрутов, чтобы сделать пользователя доступным к таким маршрутам только тем пользователям, которым разрешен доступ к административной области.

Я проверил класс здесь, но не смог помочь.

\app\Http\Middleware\Authenticate.php

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете добавить промежуточное программное обеспечение, которое делает доступным управляющего пользователя, и вы можете установить его в качестве промежуточного программного обеспечения для вашей группы маршрутов, например auth:api

Пожалуйста, запустите php artisan make:middleware UserAccessible на своем терминале.

После выполнения команды выше кустарного мастера вы увидите сгенерированный файл с именем UserAccessible.php в папке App/Http/Middleware.

UserAccessible.php Содержание

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class UserAccessible
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $user = Auth::user();

        if(!$user->accesible){
            // redirect page or error.
        }

        return $next($request);
    }
}

Затем необходимо определить промежуточное ПО маршрута.через App/Http/Kernel.php

Kernel.php Содержание

/**
 * The application's route middleware.
 *
 * These middleware may be assigned to groups or used individually.
 *
 * @var array
 */
protected $routeMiddleware = [
    ...
    'user_accessible' => \App\Http\Middleware\UserAccessible::class
];

И, наконец, вы можете определить промежуточное программное обеспечение для вашей группы маршрутов;

api.php Содержание

Route::group(['middleware' => ['auth:api', 'user_accessible']], function () {
    // your protected routes.
});

Надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...