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
,但根据您的用例,这可能有点矫枉过正。
我正在使用 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
,但根据您的用例,这可能有点矫枉过正。