2016-07-22 3 views
0

Я хотел бы построить аутентификацию администратора с помощью react и meteor Я создал следующий журнал в форме, используя 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: '[email protected]', 
     password: 'master' 
    }); 
    } 
}); 

При попытке войти в систему, используя определенную информацию о счете я получаю console.log User not found.

Не могли бы вы объяснить, что мне не хватает, чтобы достичь результата?

Я также очень ценю, если вы могли бы объяснить мне или указать мне на внешние ресурсы, как может пользовательский безопасный вход для администратора, чтобы он сэкономил production version.

Целью этой аутентификации является предоставление дополнительного доступа к информации об управлении коллекциями.

ответ

0

Вы используете счет вместо подсчета() в Meteor.users.find(). Count()

+0

Вы правы, что была проблема. Теперь он работает, спасибо вам большое. Можете ли вы объяснить, что это сохранить, чтобы иметь учетную информацию администратора на стороне сервера приложения meteor в производственной версии? – volna

+0

Я не мог понять, что вы имеете в виду. Не могли бы вы объяснить, что вы пытаетесь достичь? –

+0

Я хотел бы создать пользовательскую панель администратора, поэтому мне нужно как-то определить учетную запись администратора, чтобы сделать дальнейшую проверку подлинности и проверку на админ-страницах с помощью Meteor.userID(); – volna

0

Я думаю, что администратор не создается, так как есть другие пользователи, значение Meteor.users.find().count() никогда не будет равным нулю. Вы должны проверить, есть ли у пользователей с ролью «admin» ноль и создать администратора. Вы можете использовать пакет роли здесь alanning:roles, чтобы добавить роль пользователям.

Надеется, что это помогает

Благодаря

+0

Спасибо за предложение Хем, на самом деле, когда я введите в консоль Meteor.users.find(). count() Я получаю 0 :) – volna

+0

use count() его метод, который вы используете count в meteor.users.find(). count() –