Symfony2/Silex 个中间件

Symfony2/Silex middlewares

我正在使用 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,因此任何以 /[ 为前缀的 link =25=]/...用户,帖子 需要验证。 但它似乎不是这样工作的,当我在 $api 前加上一个 before 时,它​​只适用于 /api 的根,而不适用于 api/users 或 api/posts 或 api/categories,他们需要自己的中间件。

所以我的问题是:如何在 baseurl/api/... 之后执行所有要求在 Silex 环境中进行验证。

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

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

您也可以使用 SecurityServiceProvider,但根据您的用例,这可能有点矫枉过正。