Как аутентифицировать маршрут API с двумя разными подходами в люмене - PullRequest
0 голосов
/ 04 июля 2019

Я определил маршрут в люменах

$router->get('/', function () use ($router) {
    return $router->app->version();
});

Я хотел аутентифицировать вышеуказанный маршрут, используя токен JWT и / или простой ключ API.

Я пытался использовать что-то вроде

$router->group(['prefix' => 'api', 'middleware' => ['auth:api', 'api_key', 'throttle']], function () use ($router) {
    $router->get('/', function () use ($router) {
        return $router->app->version();
    });
});

api_key - промежуточное ПО с кодом

    $data = $request->bearerToken();
    if(empty($data))
    {
        return response()
            ->json([
                       'success' => false,
                       'status' => 401,
                       'message' => 'HTTP_UNAUTHORIZED'
                   ], 401);
    }
    $user = User::where('api_key', $data)->first();

    if(empty($user))
    {
        return response()
            ->json([
                       'success' => false,
                       'status' => 401,
                       'message' => 'HTTP_UNAUTHORIZED'
                   ], 401);
    }
    return $next($request);

Когда я предоставляю токен JWT в качестве носителя авторизации, он работает. Но когда я попытался передать API-ключ в качестве носителя авторизации, он выдал исключение 401 из auth:api.

Как изменить код для обработки обоих случаев в люменах

...