将 Node Express 会话传递给 PhantomJS Open



我的应用有一个路由/project/:id,该路由受身份验证中间件保护,该中间件使用护照允许访问者使用其 Slack 帐户进行身份验证。

我想使用 phantomJS 将/project/:id渲染为 pdf。我认为最好的方法是创建一个路由/print/:id(相同的身份验证中间件(,该路由创建一个虚拟实例并使用open方法来请求/project/:id

当请求/print/:id时,浏览器会话被检测为正常,这很好。但是当 phantom 执行内部请求时,它的会话是未经授权的。最好的选择似乎是将浏览器会话复制到幻像会话上。

我注意到 phantom 的 open 方法允许设置参数,但我不知道请求对象的哪些属性需要传递给该设置参数。

我注意到有一个关于 cookie 的类似问题,但那里没有明确的解决方案,如果我理解正确,当您无法访问会话本身时,重新创建 cookie 可能更适合访问第三方。

我从这个问题中推断出你是应用程序的开发人员,并且PhantomJS与该项目位于同一服务器上。

如果这是真的,最简单和非常可靠的解决方案是检查/project/:id请求是否是本地的,以及用户代理是否是PhantomJS的,并在那时禁用身份验证中间件。

相关内容

  • 没有找到相关文章

最新更新