当前位置: 首页 > 知识库问答 >
问题:

Slim-PHP框架应用中间件的部分应用

史逸春
2023-03-14

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

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

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

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

共有1个答案

宫高义
2023-03-14

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

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

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

 类似资料:
  • 我一直试图找到一个解决方案,在我的angular应用程序上启用cors,该应用程序由一个带有Slim API框架的PHP提供服务。

  • 本文向大家介绍Yii框架应用组件用法实例分析,包括了Yii框架应用组件用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii框架应用组件用法。分享给大家供大家参考,具体如下: 应用组件 ¶ 应用主体是服务定位器, 它部署一组提供各种不同功能的 应用组件 来处理请求。 例如,urlManager组件负责处理网页请求路由到对应的控制器。 db组件提供数据库相关服务等等。 在同一个应

  • 在slim框架中: 我们可以访问: http://localhost:8080/hello/bob 请问如何在slim获得query参数呢,比如访问: 搜索无结果。

  • Python 作为一门强大的脚本语言,能够适应快速原型和较大项目的制作,它被广泛用于 web 应用程序的开发中。 Context WSGI Web 服务网关接口 (简称为 "WSGI" ) 是一种在 Web 服务器和 Python Web 应用程序框架之间的标准接口。 通过标准化 Web 服务器和Python web 应用程序框架之间的行为和通信,WSGI 使得编写可移植的的 Python web

  • 常见应用框架 应用框架是实际干活的,可以理解为 Mesos 之上跑的 应用。应用框架注册到 Mesos master 服务上即可使用。 用户大部分时候,只需要跟应用框架打交道。因此,选择合适的应用框架十分关键。 Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 PaaS)、大数据处理、批量调度、数据存储。 随着 Mesos 自身的发展,越来越多的框架开始支持 Mesos,下面总结了目前

  • 这是一个 Tcl 的Web应用框架,旨在帮助简化 Tcl (Tool Command Language) 语言编写Web应用程序的工作。提供基本的 Web应用的功能包括:会话、用户、权限分离以及抽象的数据库接口等。目前该项目还在进一步开发中,还不足以在产品环境中使用。  

  • 问题内容: 我想为Entity Framework查询创建一些测试用例,这些查询用例肯定会生成包含CROSS APPLY或OUTER APPLY运算符的SQL命令。 有人可以显示出现这类SQL查询的典型情况吗? 问题答案: 在LINQ 2 SQL中,这总是导致: 在EF中,这可能会失败,也可能会导致(我不知道是哪一个)。这是一个 关联联接,在SQL端需要一个。

  • 主要内容:创建项目,编写代码,猫眼电影案例通过上一节《 Python Scrapy爬虫框架详解》的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程。本节将通过一个的简单爬虫项目对 Scrapy 框架做进一步介绍。 首先看一个简单的示例,比如把 小牛知识库首页的“title”抓取下来,如下所示: 创建项目 在 CMD 命令行执行以下命令创建项目以及爬虫文件: 编写代码 打开爬虫文件 title.