在从IIS托管站点连接的NodeJS上验证用户

时间:2013-01-29 12:50:42

标签: php javascript node.js authentication websocket

我目前有一个过时的CMS系统,我正在尝试添加实时聊天功能。 CMS使用IIS,MSSQL和PHP运行。

聊天功能将从运行Nodejs和Socket.io

的单独linux框运行

我设法让CMS成功打开与Node服务器的连接,现在我需要一些方法来验证用户。

  • 节点服务器后面没有数据库
  • 除了通过套接字
  • 之外,节点服务器将无法访问CMS
  • 新CMS用户的可能性(非常经常发生)意味着我不能只将用户密码复制到节点服务器

我目前唯一的想法是将一组用户数据(id,名称,电子邮件地址)放在一起,创建此数据的哈希值,然后将数据和哈希值发送到Node。然后,节点服务器将尝试对数据进行散列并根据CMS发送的散列对其进行验证。 (显然CMS和Node都有预定的私有盐用于散列)

有没有更好的方法来实现这一目标?!

1 个答案:

答案 0 :(得分:0)

一个好的经验法则是:除非你是加密技师,否则不要自己加密,甚至不要再三思考

我的建议是:

  • 通过HTTPS在自己的子域(显然是同一个域)上运行两个服务器
  • 在会话cookie上使用* .domain.com cookie域,使用Secure和HttpOnly标志,以便两个子域都可以看到它
  • 将您在JSON中的PHP会话保留到两个服务器都可以访问的外部键/值存储
  • 然后,节点服务器可以根据安全cookie中的ID
  • 简单地查找有效会话