记webman 构造函数__construct 里request问题 通过中间件 使用jwt验证用户 ...

打印 上一主题 下一主题

主题 905|帖子 905|积分 2715

因为webman是常驻内存框架
当前进程初始化一次后就不会再初始化了
所以构造函数里传递request是不好用的。
这里使用中间件来代替
了解中间件:

中间件一般用于拦截请求或者响应。例如执行控制器前统一验证用户身份,如用户未登录时跳转到登录页面。例如响应中增加某个header头。例如统计某个uri请求占比等等。
中间件洋葱模型:

中间件和控制器组成了一个经典的洋葱模型,中间件类似一层一层的洋葱表皮,控制器是洋葱芯。如果所示请求像箭一样穿越中间件1、2、3到达控制器,控制器返回了一个响应,然后响应又以3、2、1的顺序穿出中间件最终返回给客户端。也就是说在每个中间件里我们既可以拿到请求,也可以获得响应,这样我们就可以在中间件里做很多事情,例如拦截请求或者响应。
中间件接口:

中间件必须实现Webman\MiddlewareInterface接口。
也就是必须实现process方法,process方法必须返回一个support\Response对象,默认这个对象由$handler($request)生成(请求将继续向洋葱芯穿越),也可以可以是response() json() xml() redirect()等助手函数生成的响应(请求停止继续向洋葱芯穿越)。
 
详情参照webman文档
https://www.workerman.net/doc/webman/middleware.html
 
下面是详细操作
在/config/middleware.php下添加
  1. return [
  2.     '' => [
  3.         // .... ....
  4.         app\middleware\ActionHook::class
  5.     ]
  6. ];
复制代码
然后在app\middleware\文件夹下添加
ActionHook.php

[code]
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表