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

时间:2016-08-02 08:38:54

标签: meteor meteor-accounts

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

3 个答案:

答案 0 :(得分:2)

也许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;
});

答案 1 :(得分:1)

登录挂钩之前没有内置的可用于直接阻止访问(但有after)。假设您的多个域共享一个用户集合,那么您有几个选择:

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

答案 2 :(得分:-2)

我认为我们已经onBefore和onAfter行动以确定用户是否登录。因此,您可以在onBefore操作中提及您的登录页面,之后所有页面都在onAfter action