Частично приложение на междинен софтуер за приложения с тънка PHP рамка

Пиша REST API със Slim и искам някои части от моя API да изискват влизане, а други да бъдат публично достъпни. За удостоверяване използвам междинния софтуер StrongAuth от Slim Extras.

За съжаление, StrongAuth убива заявката, ако не е осигурено удостоверяване и е междинен софтуер на приложението (което изглежда е всичко или нищо), така че изграждам своя API, изцяло защитен от StrongAuth, позволявайки достъп до публичните ресурси чрез фиктивно влизане .

Това обаче не е идеално; Бих искал просто да имам необезпечени ресурси. Опитах да стартирам две приложения в един и същи файл, но едно от тях винаги извежда грешка 404, което очевидно е неприемливо.

Някой знае ли начин да приложи мидълуер на ниво приложение само към някои маршрути в Slim или как да стартира множество Slim приложения в един и същи файл без проблем?


person John Zeringue    schedule 16.10.2013    source източник


Отговори (1)


Всички тънки междинни програми изпълняват публичния метод call(), можете да опитате да го добавите към желания от вас маршрут по този начин. За целта трябва да получите екземпляр на вашия междинен софтуер ($auth), без да го използвате като междинен софтуер.

$app->get('/yourSecuredRoute', array($auth,'call'), function() use($app){
        $app->render('index.html');
});

Не съм сигурен дали работи, а дори и да работи, е трудно и трябва да има по-добър начин, като например да напишете свой собствен междинен софтуер на ниво маршрут.

person webaba    schedule 17.10.2013
comment
Благодаря! Не съм много PHP човек и това не беше в документацията. - person John Zeringue; 17.10.2013
comment
Не, ако ниво на приложение strongAuth y и го използвате като междинен софтуер за маршрут, той ще се изпълнява два пъти в този маршрут... Мисля... @john работи ли, както очаквахте? - person KnF; 30.10.2014
comment
Ако си спомням правилно, не трябва да го добавяте като среден продукт на ниво приложение, а само за конкретния маршрут. - person webaba; 30.10.2014