【问题标题】:Node js Cross-domain sessionNode js 跨域会话
【发布时间】:2017-03-14 06:52:22
【问题描述】:

这里我将描述我的项目的需求。

基本上我想构建一个可以嵌入到不同网站的聊天应用程序,例如,使用 wordpress、magento、drupal、自定义框架等构建网站。我真正需要的是在某些网站(wordpress,magento,drupal ....)上使用(socket.io)嵌入JavaScript来处理套接字聊天,所以我最终拥有的是一组javascript代码(客户端) ,以及在 nodejs 中运行的服务器(使用 socket.io)

我面临的问题是登录后管理注册用户的会话。由于我的代码嵌入在不同的网站上,并且节点服务器位于其他服务器上,因此在每次页面刷新时,我都面临着验证用户会话会话的困难。您能否帮助我如何以最佳方式管理此应用程序的会话。

如果你觉得我的需求难以理解,我可以举例详细说明

谢谢你

【问题讨论】:

    标签: node.js session authentication socket.io chat


    【解决方案1】:

    如果我了解您的问题,您只需要处理用户会话?更具体地说是在客户端?

    根据您提供的信息,我将假设您将表示服务器上的会话的唯一字符串返回给客户端。其格式可以是 cookie、普通字符串/令牌等。

    对于 cookie,您应该不会有太多问题,因为浏览器会处理这个问题。虽然您可能需要在服务器上正确设置它。

    对于每个需要身份验证的请求都需要返回到服务器的令牌/字符串,您应该将其存储在浏览器的会话存储/本地存储中,具体取决于您的需要。然后你应该将它嵌入到返回服务器的每个请求中并对其进行身份验证。

    【讨论】:

    • 感谢您的回复。还有一个问题。因为我使用 socket.emit 发送所有请求。我可以在 nodejs 服务器上设置会话吗?更具体地说,我如何在每一侧匹配“字符串/令牌”? (客户端和服务器(nodejs)端)客户端我可以使用cookie,但在服务器端我如何保存该值?这将是一个更好的选择(数据库或会话(会话目前不可能,只有套接字发射用于跨域发送数据))
    • 会话 - 这正是它们的用途。您将会话存储在内存中,这也意味着重新启动服务器需要每个人再次登录。您还可以使用 Redis 等第三方应用程序来跟踪您的商店,特别是如果您考虑扩展您的服务器,您需要在服务器实例之间共享会话。编辑:auth0.com/blog/auth-with-socket-io
    • 感谢您的宝贵信息,让我尝试使用令牌实现身份验证
    猜你喜欢
    • 2013-10-03
    • 2010-11-23
    • 1970-01-01
    • 2014-10-19
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2013-05-08
    相关资源
    最近更新 更多