【问题标题】:Opening password protected site (Passport.js) with Phantom.Js by setting cookie通过设置 cookie 使用 Phantom.Js 打开受密码保护的站点 (Passport.js)
【发布时间】:2014-03-25 19:44:02
【问题描述】:

我正在尝试使用 Phantom.js 脚本访问我的 Express.js 应用程序的受护照保护的页面。

如何在不知道护照的情况下模拟登录用户?

我使用 Passport.js 作为身份验证库,带有 LocalStrategyMongoStore 来保护 mongo 中的会话em> 数据库。我想知道是否可以在 sessions 集合中创建记录并使用 Phantom.js (phantom.addCookie(...)) 设置生成的 cookie,以模拟特定的登录用户,而无需用户密码?

我可以在后端为特定用户生成 connect.sid cookie 的内容并将其添加到 phantom.js 以模拟登录用户吗?

调查结果:

我发现 Passport.js 使用 Cookie-Signature 节点模块来签署 cookie 内容,我假设 Express.js 使用 Connect cookie 和 session 中间件来处理 cookie 和 session 创建并将它们插入到 HTTP 标头中。

【问题讨论】:

  • 我想我找到了解决方案,稍后发布。
  • 您能发布您的解决方案吗?我也有同样的问题。

标签: cookies express mongoose phantomjs passport.js


【解决方案1】:

使用javascript,您应该能够填写您的登录字段并提交。 (模拟用户登录,而不是尝试重新创建登录 cookie)

这可能是你最好的选择。

有关如何填写表格,请参阅: How to fill in form field, and submit, using javascript? Automatic form fill using javascript

【讨论】:

  • 这行不通,因为我只是在数据库中散列了密码。
  • 其实我找到了解决办法,以后想写下来。
  • @BausTheBig 有什么解决办法?
  • @BausTheBig 我正在使用会话 cookie(实际上,我正在使用请求中的所有 cookie),但仍然无法通过护照进行身份验证。你有没有让这个工作?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 2020-08-29
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
相关资源
最近更新 更多