Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 将url查询参数传递给Accounts.onCreateUser_Meteor_Facebook Login_Server Side_Meteor Accounts_Twitter Login - Fatal编程技术网

Meteor 将url查询参数传递给Accounts.onCreateUser

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

我有一个简单的请求,我有一些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){});
但这对于“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?