【问题标题】:How can I sync the value of Meteor's userId to the client?如何将 Meteor 的 userId 的值同步到客户端?
【发布时间】:2014-04-29 04:22:41
【问题描述】:

出于兼容性原因,我目前无法使用 Meteor 的所有帐户功能。不过,我的系统非常简单,我在服务器上公开了一个“身份验证”方法,该方法执行必要的身份验证工作,然后,如果成功,则通过this.setUserId 设置Meteor.userId() 的值。唯一的问题是,当我在服务器上调用this.setUserId 时,它似乎不会传播回客户端。 Meter.userId() 继续在客户端返回 null,但在服务器上返回正确的值。由于this.setUserId 是一个仅限服务器的函数,我不知道如何在“authenticate”方法返回后在客户端上设置正确的用户 ID。想法?

【问题讨论】:

    标签: meteor


    【解决方案1】:

    您需要做的不仅仅是设置userId 来验证用户身份。查看这些示例以了解如何进行自定义身份验证:

    第二个是我的例子。我强烈建议构建基本 accounts 包提供的功能,而不是滚动您自己的所有操作。

    编辑:根据 OP 的响应,人们可能有兴趣进行另一种与身份验证无关的操作;请参阅以下内容:

    https://dweldon.silvrback.com/impersonating-a-user

    【讨论】:

    • 我的 Meteor 应用程序是一个更大的应用程序的一部分,该应用程序已经拥有自己完美的身份验证系统,所以我实际上只是想在客户端上设置用户 ID。但是,我接受“这是不可能的”在这里可能是正确的答案。
    • 这绝对是可能的——所有现有的流星账户系统都通过谷歌、GitHub、Facebook等登录。它们中的任何一个都应该是如何使用你的其他应用程序登录的一个很好的例子进入流星。
    • @DerekThurn 查看我添加到帖子中的链接。
    【解决方案2】:

    尽管 Meteor 文档将“this.setUserId()”列为仅限服务器,但它当前也可以在客户端上工作,所以我最终解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多