2017-02-27 7 views
1

Ich benutze Meteor Accounts für Login und Benutzerregistrierung.Howto Meteor Accounts Benutzerregistrierung deaktivieren?

enter image description here

Wenn ein Benutzer in der unteren Zeile trifft (Register):

enter image description here

Er auf die Seite Account umgeleitet wird:

enter image description here

Der Code hinter Diese Seiten sind eine Mischung aus Jade-Vorlagen und Javascript.

template(name="userFormsLayout") 
    section.auth-layout 
    section.auth-dialog 
     +Template.dynamic(template=content) 

Es scheint, wie der Inhalt ersetzt wird, wenn das Register Link schlagen und das ist so weit wie mein Wissen ...

geht Nutzer Ich mag neue Konten von der Erstellung von entweder deaktivieren, das Finale verhindern Registrieren Sie den Button auf der Registrierungsseite und/oder deaktivieren Sie die komplette Registrierungsseite.

Ich bin auch offen für andere Lösungen zu verhindern, dass Benutzer registrieren.

RELATED: How can I set forbidClientAccountCreation to false in Meteor?

UPDATE: ich diesen

AccountsTemplates.configure({ 
    forbidClientAccountCreation: true 

auch versucht, aber bekam:

Error: signUp route configured but forbidClientAccountCreation set to true! 

mir jemand mit diesem Problem helfen?

Antwort

1

Ich habe nicht die ganze Antwort, aber ich kann Ihnen ein paar Stücke geben, um loszulegen.

Zunächst können Sie AccountsTemplates (AT) anweisen, Ihr Layout zu verwenden. Sie können dies überall platzieren, das sowohl auf den Client als auch auf den Server geladen wird, z. lib/atConfig:

AccountsTemplates.configureRoute('signIn', { 
    layoutTemplate: 'LoginLayout' 
}); 

hier ist die Layout-Vorlage:

<template name="LoginLayout"> 
    <main> 
     <div> 
      {{> Template.dynamic template=main}} 
     </div> 
    </main> 
</template> 

im JS, können Sie die Bits der Vorlage verstecken Sie die Benutzer nicht sehen wollen. Hier verstecke ich das Passwort-Formular und ein Trennzeichen. Sie können in das DOM graben, um herauszufinden, welche Bits Sie ausblenden möchten:

Template.LoginLayout.onRendered(function() { 
    this.autorun(() => { 
     if (this.subscriptionsReady()) { 
      Tracker.afterFlush(() => { 
       $('.at-pwd-form').remove(); 
       $('.at-sep').remove(); 
      }); 
     } 
    }); 
}); 

für den Server, können Sie für neue Benutzer versucht überprüfen und sie ablehnen, wenn sie w/Benutzername und Passwort gemacht sind. Ich denke, das sollte funktionieren, aber man kann mit ihm spielen, um müssen:

import {Meteor} from 'meteor/meteor'; 

Meteor.startup(() => { 
    /** 
    * reject registration via username/password. 
    */ 
    Accounts.validateNewUser(function(attemptInfo) { 
     if (attemptInfo && attemptInfo.services && attemptInfo.services.password) { 
      return false; 
     } 

     return true; 
    }); 
}); 
1

Ihr letzten Fehler kommt von widersprüchlicher Nachricht an Konten Setup zu senden. Vielleicht möchten Sie Ihre route configuration für die Anmeldeseite entfernen?

+0

Wie kann ich die Konfiguration der SignUp-Route abhängig von der meteor settings.json config oder der ForbidClientAccountCreation machen? – Gobliins

Verwandte Themen