我使用silex创建一个api,我的路线看起来与此类似:
$api = $app['controllers_factory'];
$users = $app['controllers_factory'];
$users->match('/', UsersController::action);
$api->mount('/users', $users);
$app->mount('/api', $api);
所以路线是baseurl / api / users
我现在要做的是将一个before()附加到$ api控制器组并对api强制执行验证,所以任何前缀为/api/...users的帖子都有帖子 需要验证。 但它似乎不是它的工作方式,当我在$ api之前放一个,它只适用于/ api的根,而不是api / users或api / posts或api / categories,它们需要自己的中间件。
所以我的问题是:如何在baseurl / api / ...之后强制执行所有要求在Silex环境中进行验证。
答案 0 :(得分:1)
您可以将before()
添加到$app
个实例(请参阅http://silex.sensiolabs.org/doc/middlewares.html#before-middleware)。
测试$request
对象以查看是否需要身份验证。
您也可以使用SecurityServiceProvider
,但根据您的使用情况,这可能有点过分。