实施自动登录第三方网站

时间:2015-07-07 22:36:02

标签: javascript node.js authentication login request

我的基于节点的Web服务链接到外部第三方站点,该站点需要我们也拥有的用户名/密码(但与我们的webservice的登录名不同)。为了提供无缝的用户体验,当用户点击第三方网站的链接时,我想使用用户名/密码自动登录,并将它们直接带到外部页面的仪表板。

至少,我想使用此信息预先填充第三方登录表单,但this post detailing a similar situation并不会让我乐观。

我认为第三方网站不支持OAuth或现有的SSO协议。我不能使用iFrame。一个可行的选择似乎是使用some kind of proxy,或使用请求(或令牌?)到第三方网站。

知道我无法控制第三方登录,有哪些高级选项可以实现最终目标?在选择解决方案时,我需要注意哪些事项?

1 个答案:

答案 0 :(得分:2)

简短的回答是,如果外地网站在表单上使用CSRF保护,或者不允许表单输入的查询字符串参数,则无法完成此操作。

以下是您可以尝试的内容:

检查登录页面的源代码,并使用查询字符串中的HTML输入名称标记值进行重定向。因此,如果表单包含用户名和密码输入字段,则您可以使用这两个名称。

现在 - 请记住,您尝试做的事情通常不是一个好主意。

为另一个网站存储用户的凭据是一个巨大的安全风险,并不是一个好主意。如果网站/服务没有提供SSO / Oauth,将来这可能会成为您的问题。

除此之外,还有一些可能发生的坏事:

  • 有人获取域并使用用户名/密码捕获所有请求。
  • 用户的计算机已被劫持或处于中间状态,因此当您将用户重定向到此网站时,第三方会捕获用户名/密码信息。
  • 网站更改了他们的登录表单,并且您最终将凭据发送到另一个地方。
  • 网站记录了他们传入的GET请求,现在在他们的网络服务器上有一堆以明文形式存储的凭据(如果这些日志消失,那就太糟糕了)。