访问指定FlowRouter路由时添加密码提示

Adding a password prompt when accessing specified FlowRouter routes

我目前正在尝试实现一个 flowrouter 触发器功能,该功能会停止当前路由并提示您输入 pin。

提供 pin 后,检查是否正确;用户将继续他们请求的路线。

我在下面包含了我的 Flow 路由器路由、输入触发功能和 pin 提示功能:

路由器上的停止事件工作正常。 引脚捕获功能也没有问题。 成功获取请求的路径也有效,但是当它被推入 FlowRouter.go(); URL 发生变化,但应用程序不遵循路线。

// Flow Router route

StaffRoutes.route('/browse', {
    name: "browseAccounts",
    triggersEnter: [enterPin],
    action: function() {
        BlazeLayout.render('cardLayout', {
            main: "browseSearch"
        })
    }
});



// Enter PIN code trigger function

function enterPin(context, redirect, stop) {
    // saving the requested route for after pin login success
    let route = FlowRouter.current();
    Session.set('redirectAfterPin', route.path);

    // this just shows a hidden pin pad
    showPinPrompt();

    // stopping the current route
    stop();
}

// pinPromptSubmission
function pinSubmission() {
    // presume pin is correct
    if (pinIsCorrect) {

        // grab requested path and initiate FlowRouter go
        let newPath = Session.get('redirectAfterPin');
        FlowRouter.go(newPath);
    }
}

如果有人知道为什么这不起作用,请告诉我!谢谢

我的代码看起来很相似。我没有使用 FlowRouter.current 查找路径,而是使用 context.path。我没有使用 stop(),而是使用了 redirect()。这是我的代码。

FlowRouter.route("/loans/apply", {
  name: "loanApplication",
  action(params) {
    renderLayoutWith(<LoanApplicationContainer />, "Apply Loan");
  },
  triggersEnter: [redirectAnonymous]
});

function redirectAnonymous(context, redirect) {
  if(!Meteor.userId()) {
    redirect('/login?redirectUrl=' + context.path);
  }
}