我正在构建一个多域网站。因此特定域中的用户不应该从另一个域进行访问。我想在登录查询中添加一个字段。login
或onlogin
之前是否有钩子或函数?
也许validateLoginAttempt可以帮助您。
您可以使用状态或域字段更新user.profile,例如:
Meteor.users.update({ _id: id }, { $set: {'profile.status': 'deleted'} });
在允许用户登录之前,您可以在服务器上进行检查:
Accounts.validateLoginAttempt(function(options) {
if(options.user.profile.status &&
options.user.profile.status === 'deleted'){
throw new Meteor.Error('Not allowed');
}
return true;
});
没有一个内置的before登录挂钩可以用来直接阻止访问(但有一个after)。假设你的多个域共享一个用户集合,那么你有几个选择:
- Fork Meteor的账户包实现您自己的规则
- 在登录UI中,注意用户名/电子邮件字段中的更改,并通过服务器方法运行检查,以查看该用户是否登录到了正确的域
- 如果他们登录到错误的域,则会自动将他们重定向到正确的域。他们已经登录了,这很好
我认为我们有onBefore和onAfter操作来识别用户是否登录。因此,在所有页面都在onAfter动作