1

我正在用 Slim 编写一个 REST API,我希望我的 API 的某些部分需要登录,而某些部分可以公开使用。对于身份验证,我使用 Slim Extras 的 StrongAuth 中间件。

不幸的是,如果没有提供身份验证,StrongAuth 会终止请求并且是一个应用程序中间件(似乎是全部或全部),所以我一直在构建我的 API 完全由 StrongAuth 保护,允许通过虚拟登录访问公共资源.

然而,这并不理想。我只想拥有不安全的资源。我尝试在同一个文件中运行两个应用程序,但其中一个总是抛出 404 错误,这显然是不可接受的。

有谁知道如何将应用程序级中间件应用到 Slim 中的某些路由,或者如何在同一个文件中运行多个 Slim 应用程序而不会出现问题?

4

1 回答 1

2

Slim 中间件都实现了公共方法 call(),您可以尝试通过这种方式将其添加到您想要的路由中。为此,您需要获取中间件 ($auth) 的实例,而不将其用作中间件。

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

不确定它是否有效,即使有效,也很棘手,应该有更好的方法,例如编写自己的路由级中间件。

于 2013-10-17T10:59:24.220 回答