【问题标题】:Meteor-react Admin SetupMeteor-react 管理员设置
【发布时间】:2016-11-25 18:48:51
【问题描述】:

我想使用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 reactjs login passwords admin


    【解决方案1】:

    你在 Meteor.users.find().count() 中使用 count 而不是 count()

    【讨论】:

    • 你说得对,这是个问题。现在可以了,非常感谢。你能解释一下在生产版本的流星应用程序的服务器端保存管理员帐户信息吗?
    • 我不明白你的意思。请你解释一下你想达到什么目的?
    • 我想构建自定义管理面板,所以我需要以某种方式定义管理员帐户,以便使用 Meteor.userID() 对管理页面进行进一步的身份验证和验证;
    【解决方案2】:

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

    希望对你有帮助

    谢谢

    【讨论】:

    • 感谢您的建议 khem,实际上当我输入控制台 Meteor.users.find().count() 我收到 0 :)
    • 使用 count() 它是您在meteor.users.find().count() 中使用count 的一种方法
    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2013-08-02
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多