【问题标题】:pass node express session to phantomjs open将节点快速会话传递给 phantomjs 打开
【发布时间】:2018-01-11 18:01:01
【问题描述】:

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

我想使用 phantomJS 将/project/:id 呈现为 pdf。我认为最好的方法是创建一个路由/print/:id(相同的身份验证中间件),它创建一个幻像实例并使用open 方法请求/project/:id

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

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

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

【问题讨论】:

    标签: node.js session express phantomjs


    【解决方案1】:

    我从这个问题推断您是应用程序的开发人员并且在与该项目相同的服务器上拥有 PhantomJS。

    如果这是真的,最简单且非常可靠的解决方案是检查对/project/:id 的请求是否是本地请求,如果 useragent 是 PhantomJS 的请求,并在那时禁用 auth 中间件。

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2014-11-08
      • 2014-06-14
      • 1970-01-01
      • 2015-12-28
      • 2019-07-16
      • 2013-11-07
      • 2017-09-07
      • 1970-01-01
      相关资源
      最近更新 更多