Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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

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
Javascript 是否正确使用了onEnrollmentLink()函数?_Javascript_Meteor - Fatal编程技术网

Javascript 是否正确使用了onEnrollmentLink()函数?

Javascript 是否正确使用了onEnrollmentLink()函数?,javascript,meteor,Javascript,Meteor,我想捕捉当用户点击注册链接时,做一些事情,然后让正常的注册流程继续。但是当我使用onerollmentlink()函数时,它会阻碍用户的旅程 我试过: Accounts.onEnrollmentLink(函数(令牌,完成){ set('mySessionVar','something'); 完成(); }); 我尝试返回已完成的回调returndone()或返回完成;但这也不起作用 文件规定: done:注册UI流完成时要调用的函数。在调用此函数之前,将暂停正常登录过程,以便即使用户B已登录,

我想捕捉当用户点击注册链接时,做一些事情,然后让正常的注册流程继续。但是当我使用
onerollmentlink()
函数时,它会阻碍用户的旅程

我试过:

Accounts.onEnrollmentLink(函数(令牌,完成){
set('mySessionVar','something');
完成();
});
我尝试返回已完成的回调
returndone()
返回完成
;但这也不起作用

文件规定:

done:注册UI流完成时要调用的函数。在调用此函数之前,将暂停正常登录过程,以便即使用户B已登录,也可以注册用户A


遗憾的是,文档中没有示例,文本也不清楚。有人知道实现此功能的正确方法吗?

对于任何到达这里的人,因为他们对文档有点困惑

Accounts.onEnrollmentLink(...)
用于flowRouter,因为它是官方的Meteor路由器(不是唯一的,而是官方的)

为了完成整个注册过程,只需设计您特别想要的。 例如,常见的情况是,通过邀请然后用户访问完成登船,用户将输入所需密码:

  • 创建用户:

    const user = { username, email, password };
    
    把它放进去

    let userId = Accounts.createUser({ username, email, password });
    

    Accounts.sendEnrollmentEmail(userId);
    
  • 用户单击链接并导航到您的站点,在前端您可以使用表单请求密码如果您使用的不是Flow router,而是Angular、React或VueJS等另一个前端,则您永远不会询问Accounts.OneRollmentLink(…)
  • 。您将执行下一步

  • 按令牌查找用户(应该在URL中设置),可能使用方法而不是发布

    function findByEnrollToken(token: string) {
        return Meteor.users.findOne({ "services.password.reset.token": token });
    }
    
  • 最后,使用
    Accounts.resetPassword(令牌,newPassword,[callback])
    设置新的用户密码,其中密码是在前端设置的


  • 就是这样,您还可以在同一个提交函数中使用
    Accounts.verifyEmail(令牌,[callback])
    以及
    Accounts.resetPassword()

    对于任何到达此处的用户,因为他们与文档有点混淆

    Accounts.onEnrollmentLink(...)
    
    用于flowRouter,因为它是官方的Meteor路由器(不是唯一的,而是官方的)

    为了完成整个注册过程,只需设计您特别想要的。 例如,常见的情况是,通过邀请然后用户访问完成登船,用户将输入所需密码:

  • 创建用户:

    const user = { username, email, password };
    
    把它放进去

    let userId = Accounts.createUser({ username, email, password });
    

    Accounts.sendEnrollmentEmail(userId);
    
  • 用户单击链接并导航到您的站点,在前端您可以使用表单请求密码如果您使用的不是Flow router,而是Angular、React或VueJS等另一个前端,则您永远不会询问Accounts.OneRollmentLink(…)。您将执行下一步

  • 按令牌查找用户(应该在URL中设置),可能使用方法而不是发布

    function findByEnrollToken(token: string) {
        return Meteor.users.findOne({ "services.password.reset.token": token });
    }
    
  • 最后,使用
    Accounts.resetPassword(令牌,newPassword,[callback])
    设置新的用户密码,其中密码是在前端设置的


  • 也就是说,您还可以在同一提交函数中使用
    帐户.verifyEmail(令牌,[callback])
    以及
    帐户.resetPassword()

    “用户B保持登录状态,这是不正确的。”因此,您想在新用户注册时注销所有其他用户吗?是的。这实际上就是注册的正常工作方式,我只是想让正常的注册流程继续,但当我使用此函数时,流程被暂停,我无法重新启动它。你不能在回调开始时调用
    Meteor.logout()
    ?这将注销当前用户,当然,但这里的问题是流被挂起,因此新用户没有登录。我会更新这个问题,让它更清楚。嗨,你有没有让它工作过?似乎当用户点击链接时,my Accounts.OneRollmentLink甚至不会被调用。“用户B保持登录状态,这是不正确的。”因此,当新用户注册时,是否要注销所有其他用户?是的。这实际上就是注册的正常工作方式,我只是想让正常的注册流程继续,但当我使用此函数时,流程被暂停,我无法重新启动它。你不能在回调开始时调用
    Meteor.logout()
    ?这将注销当前用户,当然,但这里的问题是流被挂起,因此新用户没有登录。我会更新这个问题,让它更清楚。嗨,你有没有让它工作过?似乎当用户点击链接时,my Accounts.OneRollmentLink甚至不会被调用。为什么我们需要执行步骤3?如果我们基于令牌获取用户,那么该令牌将用于什么?我看不出它在第4步或之后的文本中被使用。你不需要这样做,它被展示为OneRollmentLink方法用途的替代示例。如果您想在后端实现一些逻辑(例如:发送电子邮件等),则可以使用步骤3。第4步是前端暴露。这里的关键用法是令牌用法。为什么我们需要执行步骤3?如果我们基于令牌获取用户,那么该令牌将用于什么?我看不出它在第4步或之后的文本中被使用。你不需要这样做,它被展示为OneRollmentLink方法用途的替代示例。如果您想在后端实现一些逻辑(例如:发送电子邮件等),则可以使用步骤3。第4步是前端暴露。这里的关键用法是令牌用法。