如何使用express/connect中的数据来猴子修补请求obj

发布于 2024-12-04 19:46:35 字数 231 浏览 2 评论 0原文

你好 我正在编写一个中间件库来抽象 oauth 授权/身份验证的过程并提供自己的身份验证策略。

我陷入困境,因为当我用数据猴子修补请求时,它在任何路由请求上都无法使用,但其他中间件(connect/express 文档在这个问题上非常糟糕)。

如何使数据保持不变,以便每个请求都可以使用它(静态文件除外)?

谢谢。

PS我不使用其他可用的模块,因为让它们工作只是令人沮丧......

Helllo
Im programming a middleware library to abstract the process of oauth authorize/authenticate and supply own authentication strategies.

I'm stuck because when I monkey patch the request with data it won't be available on any routed request but the other middlewares (connect/express documentation is very poor on this subject).

How can I make the data stick so it would be available to every request (except for static files)?

Thanks.

P.s I don't use other available modules because it was just frustrating to make them work...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独行侠 2024-12-11 19:46:35

试试这个:

function authOrDie() {
  return function(req,res,next) {
    console.log(req.isAuthenticated());
    next(); // Have to call next to continue to the next middleware
  };
}

我假设 console.log(req.isAuthenticated()); 正在运行并且正在工作,我还假设它正在打印 false

另外,如果对静态文件的请求不需要进行身份验证,您应该将其移至堆栈中更高的位置。

Try this:

function authOrDie() {
  return function(req,res,next) {
    console.log(req.isAuthenticated());
    next(); // Have to call next to continue to the next middleware
  };
}

I assume console.log(req.isAuthenticated()); is being run and it's working, I also assume it's printing false.

Also, if requests to your static files doesn't need to be authenticated you should move it much higher in the stack.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文