流星Accounts.onLogin无限循环
Meteor Accounts.onLogin infinite loop
我在Meteor论坛上看到建议把Meteor.logoutOtherClients
放在Accounts.onLogin()
里面。虽然这有效,但它有一个问题,那就是当打开多个 TABS(不是浏览器)时,Accounts.onLogin()
会被多次调用。这是预期的输出吗?
下面是我的代码:
Accounts.onLogin(() => {
console.log('onLogin called')
Meteor.logoutOtherClients((error) => {
if (error) {
console.log(`error: ${error.error}`)
}
})
// Some Meteor Method calls here
alert('Welcome User!')
})
另一个问题是我在同一个 Accounts.onLogin()
块中进行了方法调用,并且每次都被调用。
meteor@1.4.2.6
accounts-base@1.2.17
问题
- 我应该如何防止这种无限调用的发生?
- 如果我不能阻止这种情况,当用户登录时,我应该在哪里调度方法调用?因为很明显,如果我把它放在这个代码块中,它会导致调度被无限调用并且
alert
被无限触发。
您还可以在此处查看报告的详细信息:https://github.com/meteor/meteor/issues/8669
这是一个已确认的错误 #8669。所以我的解决方法是为用户创建一个手动令牌,而不是使用 accounts-base
中的默认令牌。我还手动处理了检查,所以基本上摆脱了 "magic" Meteor 优惠。
我在Meteor论坛上看到建议把Meteor.logoutOtherClients
放在Accounts.onLogin()
里面。虽然这有效,但它有一个问题,那就是当打开多个 TABS(不是浏览器)时,Accounts.onLogin()
会被多次调用。这是预期的输出吗?
下面是我的代码:
Accounts.onLogin(() => {
console.log('onLogin called')
Meteor.logoutOtherClients((error) => {
if (error) {
console.log(`error: ${error.error}`)
}
})
// Some Meteor Method calls here
alert('Welcome User!')
})
另一个问题是我在同一个 Accounts.onLogin()
块中进行了方法调用,并且每次都被调用。
meteor@1.4.2.6
accounts-base@1.2.17
问题
- 我应该如何防止这种无限调用的发生?
- 如果我不能阻止这种情况,当用户登录时,我应该在哪里调度方法调用?因为很明显,如果我把它放在这个代码块中,它会导致调度被无限调用并且
alert
被无限触发。
您还可以在此处查看报告的详细信息:https://github.com/meteor/meteor/issues/8669
这是一个已确认的错误 #8669。所以我的解决方法是为用户创建一个手动令牌,而不是使用 accounts-base
中的默认令牌。我还手动处理了检查,所以基本上摆脱了 "magic" Meteor 优惠。