2016-07-22 6 views
0

Ich möchte ein Admin-Authentifizierung bauen mit react und meteor Ich habe das folgende Login-Formular React innerhalb des Client-Ordner mit ein:Meteor reagieren Admin-Setup

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

und die folgenden hinzugefügt haben Accounts.createUser in den Server main.js Datei:

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' 
    }); 
    } 
}); 

Wenn ich versuche, mit definierten Kontoinformationen anmelden I console.log User not found erhalten.

Können Sie bitte erklären, was ich vermisse, um das Ergebnis zu erzielen?

Ich werde auch eine Menge schätzen, wenn Sie mir erklären oder mich auf einige externe Ressourcen verweisen können, wie kann eine benutzerdefinierte sichere Anmeldung für den Administrator, um es in production version speichern speichern.

Der Zweck dieser Authentifizierung besteht darin, einen weiteren Zugriff auf die Verwaltung von Sammlungsinformationen zu ermöglichen.

Antwort

0

Sie verwenden Zählung statt count() in Meteor.users.find(). Count()

+0

Du hast recht, dass war ein Problem. Jetzt funktioniert es, vielen Dank. Können Sie bitte erklären, ist es sicher, Admin-Kontoinformationen auf der Serverseite der Meteor-App in der Produktionsversion zu haben? – volna

+0

Ich konnte nicht verstehen, was du meinst.Würdest du bitte erklären, was willst du erreichen? –

+0

Ich würde gerne benutzerdefinierte Admin-Panel erstellen, so dass ich irgendwie Admin-Konto definieren muss, um die weitere Authentifizierung und Verifizierung auf Admin-Seiten mit Meteor.userID(); – volna

0

Ich denke, der Admin wird nicht erstellt, da es andere Benutzer gibt, der Wert Meteor.users.find().count() wird nie Null sein. Sie sollten lieber überprüfen, ob die Benutzer mit der Rolle 'admin' null sind und den admin erstellen. Sie können das Rollenpaket hier alanning:roles verwenden, um den Benutzern eine Rolle hinzuzufügen.

Hoffe, es hilft

Dank

+0

Danke für den Vorschlag khem, eigentlich, wenn ich Tippe in die Konsole Meteor.users.find(). count() Ich erhalte 0 :) – volna

+0

benutze count() es ist eine methode die du benutzt in meteor.users.find() zählen. count() –