Meteor登录前挂钩更改登录查询



我正在构建一个多域网站。因此特定域中的用户不应该从另一个域进行访问。我想在登录查询中添加一个字段。loginonlogin之前是否有钩子或函数?

也许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)。假设你的多个域共享一个用户集合,那么你有几个选择:

  1. Fork Meteor的账户包实现您自己的规则
  2. 在登录UI中,注意用户名/电子邮件字段中的更改,并通过服务器方法运行检查,以查看该用户是否登录到了正确的域
  3. 如果他们登录到错误的域,则会自动将他们重定向到正确的域。他们已经登录了,这很好

我认为我们有onBefore和onAfter操作来识别用户是否登录。因此,在所有页面都在onAfter动作

最新更新