访问指定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);
}
}
我目前正在尝试实现一个 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);
}
}