Аутентифицировать пользователя без аутентификации API в Laravel - PullRequest
0 голосов
/ 13 апреля 2020

Я использовал Просмотр журнала в laravel, который имеет publi c маршрут , что любой пользователь может получить к нему доступ (http://localhost: 8000 / log -viewer ). Я хочу ограничить его доступ только для admin . Я попытался 'middleware' => ['web','api'] в log-viewer. php, но затем он ищет в api. php и, поскольку маршрут не определен, он перенаправляет запрос не найден. Затем я создал промежуточное ПО с именем logger.

Конфигурация / просмотр журнала. php

'route'         => [
        'enabled'    => true,

        'attributes' => [
            'prefix'     => 'log-viewer',
            'middleware' => ['logger'],
        ],
    ],

app \ Http \ Kernel. php

protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'logger' => \App\Http\Middleware\Logger::class,

app \ Http \ Middleware \ Logger. php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Http\Request;
use App\User;
use Log;

class Logger
{
    protected $auth;
    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }
   public function handle($request, Closure $next)
    {
        $user=Auth::guard('api')->user();
        Log::info($user);
        if ($user) {
            return response('testing admin');
        }
        else{
            return response()->json('Unauthorized.', 500);
        }

    }
}

Когда я Log :: info ($ user), он не возвращает результата, так как нет заголовка, содержащего авторизацию информация пользователя.

Если я создаю маршрут в сети. php, то также отображается запрос не найден.

web. php

Route::post('/log-viewer', function(\Illuminate\Support\Facades\Request $req){
        return true;
    })->middleware('logger');

app \ Providers \ BroadcastServiceProvider. php

public function boot()
    {
        // Broadcast::routes();
        Broadcast::routes(['middleware' => 'auth:api']);
        require base_path('routes/channels.php');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...