流星反应管理员设置

Meteor-react Admin Setup

我想使用 reactmeteor 建立管理员身份验证我已经在客户端文件夹中使用 React 设置了以下登录表单:

class Admin extends Component {

  onSubmit(event) {
    event.preventDefault();

    const self = this;
    const email = $(event.target).find('[name=email]').val();
    const password = $(event.target).find('[name=password]').val();

    Meteor.loginWithPassword(email, password, function (err) {
      if (err) console.log(err.reason);
    });
  }

  render() {
    return (
      <div className='flex-login'>
        <form onSubmit={this.onSubmit}>
          <div className='login'>
            <div className='welcome'>
              <p><strong>Greetings</strong>, my dear master :)  </p>
              <p>Did anything surprise you today?</p>
            </div>
            <input name='email' type="email" placeholder="Name" />
            <input name='password' type="password" placeholder="Secretword" />
            <button type="submit">Enter</button>
          </div>
        </form>
      </div>
    );
  }
}

并已将以下 Accounts.createUser 添加到服务器 main.js 文件中:

import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';

// Creating user
Meteor.startup(() => {
  if (Meteor.users.find().count === 0) {
    Accounts.createUser({
      email: 'master@mail.com',
      password: 'master'
    });
  }
});

当我尝试使用定义的帐户信息登录时,我收到 console.log User not found

你能解释一下我缺少什么来达到这个结果吗?

如果您能向我解释或向我指出一些外部资源,我将不胜感激 如何为管理员自定义安全登录以使其保存在 production version .

这些身份验证的目的是允许进一步访问管理集合的信息。

我认为没有创建管理员,因为还有其他用户 Meteor.users.find().count() 的值永远不会为零。您应该检查角色 'admin' 的用户是否为零并创建管理员。您可以使用此处的角色包 alanning:roles 为用户添加角色。

希望对您有所帮助

谢谢

您在 Meteor.users.find().count()

中使用 count 而不是 count()