PSR-7很快就会标准化(我相信)。这让我想到了中间件,例如Phly、StackPHP和ConnectJS使用的中间件。
ConnectJS 的工作方式是在中间件需要添加某些内容时修改请求对象。例如,cookie-session在对象上创建一个session
属性req
:
app.use(session({
keys: ['key1', 'key2']
}))
app.use(function (req, res, next) {
var n = req.session.views || 0 // <-- req.session is managed by the session middleware
req.session.views = ++n
res.end(n + ' views')
})
在 PSR-7 中,我们的 Request 和 Response 对象(应该是)不可变的,那么我们应该如何传递这样的额外数据呢?即,存储由身份验证中间件创建的“会话”对象或“用户”对象的最佳位置在哪里?