【发布时间】:2016-04-16 06:42:53
【问题描述】:
我正在尝试将推荐系统添加到我的项目中,因此目前我基于this package。我遇到的问题是我的项目只使用accounts-google 而不是帐户密码。这个包的工作方式是通过preSignUpHook为referrerCode(/register?r=ReferralCodeHere)添加铁路由器query parameters。我相信这仅适用于帐户-密码在使用 accounts-google 等 API 创建帐户时不起作用。
我的想法是使用 Meteor.users.before.insert 钩子来获取 Iron 路由器查询参数并将它们插入 Meteor.users 中的 referrerCode 字段,因为我已经在使用 Meteor Collection Hooks 来处理其他一些事情.
问题是我无法找到在服务器上获取查询参数的方法,我希望做这样的事情:
Meteor.users.before.insert(function(userId, doc) {
doc.referrerCode = Referrer._referrerCode; // Link 1
});
(Link 1)
但这只会显示为未定义。
如果我在我的注册页面并且它有这样的查询,例如:example.com/register?r=12345 然后我在客户端上运行Router.current().params.query.r 它返回12345。基本上,如果注册 URL 中存在推荐代码,我只需在新用户创建帐户时将其保存到 Meteor.users 中的推荐代码字段。
我对这个有点迷茫。我考虑将其设置为 Session 变量,然后在 before.insert 钩子中获取它,但这又只适用于客户端。我在想一个流星方法可能最适合这个,但我不确定我将如何构建它。非常感谢任何帮助!
【问题讨论】:
标签: meteor iron-router