Meteor 将url查询参数传递给Accounts.onCreateUser
我有一个简单的请求,我有一些URL查询的登录路径,如下所示:Meteor 将url查询参数传递给Accounts.onCreateUser,meteor,facebook-login,server-side,meteor-accounts,twitter-login,Meteor,Facebook Login,Server Side,Meteor Accounts,Twitter Login,我有一个简单的请求,我有一些URL查询的登录路径,如下所示: www.example.com/login?id=xxxyyyzzz 根据id,我需要在用户文档中添加字段。所以我需要在Accounts.onCreateUser中使用这个id 这很容易注册电子邮件/密码 Accounts.createUser({email: 'john.doe@example.com', password: 'xxx', 'extra_param': 'xxxyyyzzz'}, function(err, res
www.example.com/login?id=xxxyyyzzz
根据id,我需要在用户文档中添加字段。所以我需要在Accounts.onCreateUser中使用这个id
这很容易注册电子邮件/密码
Accounts.createUser({email: 'john.doe@example.com', password: 'xxx', 'extra_param': 'xxxyyyzzz'}, function(err, res){});
但这对于“loginWithService”来说是不可能的。我真的需要登录Facebook和Twitter
是否有其他方法在服务器端获取此id?我使用IronRouter,如果这有帮助的话
有什么提示或建议吗?我建议你看看 除“电子邮件”和“密码”字段外,您还可以添加“配置文件”对象。 您可以将任何对象或属性放入其中 如果需要在模板内部获取查询参数,可以使用:
Router.current().params.query.your_query_key
// in your case
Router.current().params.query.id
编辑:
在服务器端,您也可以有路由,下面是Iron Router guide中的一个示例:
Router.route('/item', function () {
var req = this.request;
var res = this.response;
res.end('hello from the server\n');
}, {where: 'server'});
但是,我认为您不能在服务器端使用Router.current()
希望能有所帮助。嗨,对不起,我想我没有很好地描述我的问题。我知道,我可以添加额外的参数,当您注册用户名和密码,我提到的用户。我这里的问题是,当用户第一次尝试登录facebook时,我无法添加额外的参数。这个方法将在服务器端调用Accounts.onCreateUser,所以我想知道是否有方法传递其他参数。官方的流星文件对此没有任何说明。也许这是不可能的,或者我需要一些简单的覆盖loginWithFacebok和loginWithTwitter代码。你使用Router.current()是正确的。params.query.id我可以从客户端获取我的id。但我不能在服务器端这样做。事实上,Iron路由器在服务器端并没有任何类似的全局变量。或者我错了?嗨,很抱歉回复太晚,我已经编辑了我的原始答案:你只能在服务器端使用路由器,但我认为你不能使用router.current()。作为一种解决方法,您可以在客户端使用一种方法,并将您的path_id用作参数,以便在服务器端执行Accounts.createUser?