registerPolicies(); Auth::viaRequest('api-hmac', function (Request $request) { /** * Un token devrais être fourni pour chaque requete */ if (is_null($request->bearer_token)) { return null; } // * Si la route actuelle n'as pas de nom alors on refuse de la traiter. if (!(Helper::getRoute($request))) { // @codeCoverageIgnoreStart return null; // @codeCoverageIgnoreEnd } $service = null; try { // * On récupère le service actuel correspondant au token fourni. $service = Service::getFromBearerToken($request->bearer_token ?? ''); } catch (ModelNotFoundException $e) { return null; } // * Preload the arcadiaBrands as we will access it often later. $service = $service->load('arcadiaBrands'); /** ** All Api routes must pass ArcadiaBrand model to controller action since a ArcadiaBrand owns ** a service token, otherwise the api cannot be called. ** This hack is a custom binder instead of passing ** this to route as a parameter */ app()->bind(Service::class, function () use ($service) { return $service; }); // * On authenticate la request en vérifiant sa signature. if ($service->authenticateApi($request)) { return $service; } return null; }); } }