随着我的同构 javascript 运动的推进,我暂时搁置了 Meteor,同时我更多地使用 MEAN 堆栈。为了避免任何进一步的拖延,我决定完成我最初的原型(prototype)社区应用程序。现在,我对 Meteor 的最大问题不是 react 性,而是 session /公共(public)数据。
我知道 Meteor 的本地 session 系统是基于响应式(Reactive)概念的,并且 cookie 不“存在”,因为 Meteor 在“线路”上运行。虽然假设我正在 LAMP 或 STACK 上构建应用程序,并且我正在创建用户界面。我会使用 cookies/session 来控制用户事件。如果 Meteor 依靠 react 性运行,我该如何保持持久性?
我在 atmosphere 中搜索了符合我条件的包,然后我遇到了几个存储“present session”的包。尽管这些接口(interface)在客户端而不是服务器上运行;因此我的代码将暴露给客户端,因此设置应用程序以进行利用。
综上所述,我知道 Meteor 有它的标准用户界面。我在这里要做的是了解 Meteor,并为 future 的努力积累经验。
最佳答案
Meteor 有一个内置的登录系统,可以跟踪登录的用户,这是人们使用 cookie 的主要原因之一。如果您想以持久的方式在客户端存储其他数据,您可以使用 HTML5 localStorage
API。
我认为您指的是像 PHP 这样的东西允许您将数据存储在实际存储在服务器上的“SESSION”变量中,但在来自同一客户端的不同请求之间持续存在。
如果这是您正在寻找的,有几种方法可以为您提供类似的功能:
- 存储与特定用户关联的数据,并使用 Meteor 提供的
userId
仅为该用户发布数据(使用 Meteor.publish ) - 拥有一个随机生成的客户端 ID,该 ID 存储在
localStorage
中,并在调用订阅或方法时将其传入以作为该客户端进行身份验证。这将在用户未登录的情况下起作用,并且会给您与 PHP 中的 cookies/session 非常相似的结果。您仍会将实际数据存储在服务器的数据库中,但您将通过唯一 ID 知道哪些数据与特定客户端相关联。
确实,如果您来自 PHP,Meteor 的 Session
变量的命名方式可能会造成混淆,其中 SESSION
的含义完全不同。
这是否回答了您的问题?
关于javascript - Meteor 和 Session/公共(public)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676426/