Symfony2 / Silex中间件

时间:2015-10-27 14:24:20

标签: php symfony silex

我使用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环境中进行验证。

1 个答案:

答案 0 :(得分:1)

您可以将before()添加到$app个实例(请参阅http://silex.sensiolabs.org/doc/middlewares.html#before-middleware)。

测试$request对象以查看是否需要身份验证。

您也可以使用SecurityServiceProvider,但根据您的使用情况,这可能有点过分。