


Erstellen eines benutzerdefinierten Login- und Registrierungsformulars mit Meteor
Feb 20, 2025 am 11:09 AM
Key Takeaways
- Erstellen eines benutzerdefinierten Anmelde- und Registrierungsformulars mit Meteor beinhaltet die Installation des Account-Password-Pakets, mit dem automatisch ein Meteor.Users-Sammlung zum Speichern von Benutzerdaten erstellt wird, wodurch die ma?gebliche Logik für benutzerbezogene Funktionen geschrieben werden muss.
- Die Benutzeroberfl?che für das Anmeldungs- und Registrierungssystem kann mit einfachen HTML -Formularen entwickelt werden. Die Vorlagen für diese Formulare enthalten Felder für E -Mail und Passwort sowie eine Schaltfl?che Senden.
- Ereignishandler k?nnen eingerichtet werden, um auf Benutzerinteraktionen mit den Formularen zu reagieren. Beispielsweise kann ein Ereignis ?Sendenformular“ erstellt werden, um das Standardverhalten des Formulars zu verhindern und eine Best?tigungsnachricht auszugeben, wenn das Formular eingereicht wird. Die integrierten Methoden von
- Meteor wie Concontons.creatUser () und Meteor.loginwithPassword () k?nnen zum Registrieren neuer Benutzer und zur Anmeldung vorhandenen Benutzern verwendet werden. Diese Methoden verschlüsseln automatisch Passw?rter und melden Sie sich nach der Anmeldung an, wodurch die Menge an Code reduziert wird, die geschrieben werden muss.

Basic Setup
Fügen Sie in einem neuen Meteor-Projekt das Account-Password-Paket hinzu, indem Sie den Befehl ausführen:meteor <span>add accounts-password</span>Durch Hinzufügen dieses Pakets zu einem Projekt wird eine Meteor.Users-Sammlung erstellt, um die Daten unseres Benutzers zu speichern, und wir müssen keine benutzerdefinierte Logik für benutzerbezogene Funktionen schreiben. Obwohl das Erstellen einer benutzerdefinierten Schnittstelle bedeutet, dass wir die Bequemlichkeit des Accounts-UI-Pakets verlieren, bedeutet dies nicht, dass wir die Bequemlichkeit des Back-End-?Magie“ verlieren müssen, den Meteor bieten kann.
Entwicklung der Schnittstelle
Für ein vollst?ndiges Anmelde- und Registrierungssystem gibt es viele Funktionen, für die wir Schnittstellen erstellen müssen, einschlie?lich:- Registrierung
- Login
- Passwort vergessen
- "Best?tigen Sie Ihre E -Mail" -Seite
- "E -Mail best?tigt" Seite
meteor <span>add accounts-password</span>Der n?chste Snippet zeigt stattdessen den Code des Anmeldeformulars an:
<span><span><span><template</span> name<span>="register"</span>></span> </span> <span><span><span><form</span>></span> </span> <span><span><span><input</span> type<span>="email"</span> name<span>="registerEmail"</span>></span> </span> <span><span><span><input</span> type<span>="password"</span> name<span>="registerPassword"</span>></span> </span> <span><span><span><input</span> type<span>="submit"</span> value<span>="Register"</span>></span> </span> <span><span><span></form</span>></span> </span><span><span><span></template</span>></span></span>Wie Sie sehen k?nnen, sind die Vorlagen sehr ?hnlich. Sie enthalten ein Formular, die Felder für die E -Mail und das Passwort und die Schaltfl?che Senden. Der einzige Unterschied ist der Wert des Namensattributs für die Eingabefelder und die Vorlage. (Wir verweisen bald auf diese Werte. Stellen Sie also sicher, dass sie einzigartig sind.) Wir m?chten nur, dass diese Vorlagen für einen noch nicht gesammelten Benutzer angezeigt werden. Daher k?nnen wir uns auf ein Str?mungsobjekt zwischen dem ?ffnungs- und Schlie?k?rper beziehen Tags:
<span><span><span><template</span> name<span>="login"</span>></span> </span> <span><span><span><form</span>></span> </span> <span><span><span><input</span> type<span>="email"</span> name<span>="loginEmail"</span>></span> </span> <span><span><span><input</span> type<span>="password"</span> name<span>="loginPassword"</span>></span> </span> <span><span><span><input</span> type<span>="submit"</span> value<span>="Login"</span>></span> </span> <span><span><span></form</span>></span> </span><span><span><span></template</span>></span></span>Dieser Code zeigt die Nachricht "Sie sind angemeldet" angezeigt, wenn der aktuelle Benutzer angemeldet ist, und die Vorlagen "Register" und "Anmeldung" ansonsten.
Erstellen der Ereignisse
Im Moment sind unsere Formen statisch. Damit sie etwas tun k?nnen, brauchen wir sie, um auf das Submit -Ereignis zu reagieren. Lassen Sie uns dies demonstrieren, indem Sie sich auf die Vorlage "Register" konzentrieren. Schreiben Sie in der JavaScript -Datei des Projekts Folgendes:<span><span><span><head</span>></span> </span> <span><span><span><title</span>></span>Custom Registration Tutorial<span><span></title</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span> {{#if currentUser}} <span><span><span><p</span>></span>You're logged in.<span><span></p</span>></span> </span> {{else}} {{> register}} {{> login}} {{/if}} <span><span><span></body</span>></span></span>Hier haben wir Code so geschrieben, dass das Formular in der Vorlage "Register":
- antwortet auf das Submit -Ereignis
- hat kein Standardverhalten
- gibt eine Best?tigungsnachricht auf der Konsole aus
<span>if (Meteor.isClient) { </span> <span>Template.register.events({ </span> <span>'submit form': function(event) { </span> event<span>.preventDefault(); </span> <span>console.log("Form submitted."); </span> <span>} </span> <span>}); </span><span>}</span>Für die Vorlage "Anmeldung" ist der Code nahezu identisch:
<span>Template.register.events({ </span> <span>'submit form': function(event){ </span> event<span>.preventDefault(); </span> <span>var emailVar = event.target.registerEmail.value; </span> <span>var passwordVar = event.target.registerPassword.value; </span> <span>console.log("Form submitted."); </span> <span>} </span><span>});</span>
Zusammenh?nge zusammen
Nach dem Hinzufügen des Kontospassword-Pakets zum Projekt wurden uns eine Reihe von Methoden zur Verfügung standen:- Accocts.creatUser ()
- Accoces.ChangePassword ()
- contaces.forgotPassword ()
- conces.resetPassword ()
- contaces.setPassword ()
- Accoces.VerifyEMail ()
meteor <span>add accounts-password</span>Dies ist der Code, mit dem wir einen neuen Benutzer erstellen k?nnen. Standardm??ig sind zwei Optionen erforderlich: eine E -Mail und ein Passwort. Um sie durchzugeben, schreiben Sie:
<span><span><span><template</span> name<span>="register"</span>></span> </span> <span><span><span><form</span>></span> </span> <span><span><span><input</span> type<span>="email"</span> name<span>="registerEmail"</span>></span> </span> <span><span><span><input</span> type<span>="password"</span> name<span>="registerPassword"</span>></span> </span> <span><span><span><input</span> type<span>="submit"</span> value<span>="Register"</span>></span> </span> <span><span><span></form</span>></span> </span><span><span><span></template</span>></span></span>Der endgültige Code für das Ereignis sollte ?hneln:
<span><span><span><template</span> name<span>="login"</span>></span> </span> <span><span><span><form</span>></span> </span> <span><span><span><input</span> type<span>="email"</span> name<span>="loginEmail"</span>></span> </span> <span><span><span><input</span> type<span>="password"</span> name<span>="loginPassword"</span>></span> </span> <span><span><span><input</span> type<span>="submit"</span> value<span>="Login"</span>></span> </span> <span><span><span></form</span>></span> </span><span><span><span></template</span>></span></span>Verwenden Sie diesen Code anstelle eines generischen Einfügungseinsatzes Funktion Wir haben den Vorteil, dass Kennw?rter automatisch verschlüsselt werden. Darüber hinaus sind Benutzer nach der Anmeldung angemeldet und wir müssen nicht viel Code schreiben. Es gibt auch eine LoginWithPassword () -Methode, die wir innerhalb des Ereignisses ?Anmeldung“ verwenden k?nnen:
<span><span><span><head</span>></span> </span> <span><span><span><title</span>></span>Custom Registration Tutorial<span><span></title</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span> {{#if currentUser}} <span><span><span><p</span>></span>You're logged in.<span><span></p</span>></span> </span> {{else}} {{> register}} {{> login}} {{/if}} <span><span><span></body</span>></span></span>Es akzeptiert auch die E -Mail- und Passwortwerte:
<span>if (Meteor.isClient) { </span> <span>Template.register.events({ </span> <span>'submit form': function(event) { </span> event<span>.preventDefault(); </span> <span>console.log("Form submitted."); </span> <span>} </span> <span>}); </span><span>}</span>Und im Kontext sollte der Code aussehen:
<span>Template.register.events({ </span> <span>'submit form': function(event){ </span> event<span>.preventDefault(); </span> <span>var emailVar = event.target.registerEmail.value; </span> <span>var passwordVar = event.target.registerPassword.value; </span> <span>console.log("Form submitted."); </span> <span>} </span><span>});</span>
Ausbleiben Sie
aus Benutzer k?nnen sich jetzt registrieren und sich anmelden, aber damit sie sich anmelden k?nnen, erstellen wir zun?chst eine neue "Dashboard" -Schabelt, die angezeigt wird, wenn sie angemeldet sind:<span>Template.login.events({ </span> <span>'submit form': function(event) { </span> event<span>.preventDefault(); </span> <span>var emailVar = event.target.loginEmail.value; </span> <span>var passwordVar = event.target.loginPassword.value; </span> <span>console.log("Form submitted."); </span> <span>} </span><span>});</span>Geben Sie dann den folgenden Code in die IF -Erkl?rung an, die wir früher in diesem Artikel geschrieben haben:
<span>Accounts.createUser({ </span> <span>// options go here </span><span>});</span>Jetzt k?nnen wir ein Ereignis erstellen, das an den Link "Abmelden" in der Vorlage "Dashboard" angeschlossen ist:
<span>Accounts.createUser({ </span> <span>email: emailVar, </span> <span>password: passwordVar </span><span>});</span>Um den Protokollierungsprozess auszuführen, müssen wir nur eine Abmeldemethode als solche verwenden:
<span>Template.register.events({ </span> <span>'submit form': function(event) { </span> event<span>.preventDefault(); </span> <span>var emailVar = event.target.registerEmail.value; </span> <span>var passwordVar = event.target.registerPassword.value; </span> <span>Accounts.createUser({ </span> <span>email: emailVar, </span> <span>password: passwordVar </span> <span>}); </span> <span>} </span><span>});</span>Das Registrieren, Anmeldungen und Anmeldungen sollte nun wie erwartet funktionieren.
Schlussfolgerungen
Wir haben mit einer winzigen Menge an Code viel Fortschritte gemacht, aber wenn wir eine vollst?ndige Schnittstelle für das Kontensystem erstellen m?chten, ist noch viel zu tun. Folgendes würde ich vorschlagen:- Aktivieren Sie die überprüfung der E -Mails des neuen Benutzers.
- validieren Sie die Erstellung (und Anmeldung) von Benutzern.
- Fügen Sie den Formularen "Register" und "Login" visuelle Validierung hinzu.
- Machen Sie etwas, wenn ein Anmeldeber Versuch fehlschl?gt. Erlauben Sie den Benutzern, ihr Passwort zu ?ndern.
- Es k?nnte einen Nachmittag dauern, um die Einzelheiten zur Implementierung dieser Funktionen herauszufinden. Basierend auf dem, was wir in diesem Tutorial behandelt haben, ist nichts davon au?erhalb Ihrer Reichweite. Meteor macht die harte Arbeit für uns. Wenn Sie mit dem in diesem Artikel entwickelten Code spielen m?chten, sehen Sie sich das von mir eingerichtete Github -Repository an.
Wie kann ich dem Registrierungsformular im Meteor zus?tzliche Felder hinzufügen? Sie k?nnen das Benutzerprofil erweitern, indem Sie weitere Felder in der Methode der Konten hinzufügen. Wenn Sie beispielsweise ein Feld für den vollst?ndigen Namen des Benutzers hinzufügen m?chten, k?nnen Sie dies so tun:
conces.createuser ({
Benutzername: 'TestUser',
Passwort: 'Passwort ',
Profil: {
Fullname:' Test User '
}
}); Sie k?nnen sp?ter mit Meteor.user () auf dieses Feld zugreifen. Eingebaute M?glichkeit, das Erscheinungsbild des Anmelde-/Registrierungsformulars anzupassen. Sie k?nnen jedoch CSS verwenden, um das Formular entsprechend Ihren Anforderungen zu stylen. Sie k?nnen den Formularelementen Klassen zuweisen und diese Klassen dann in Ihrer CSS -Datei verwenden, um Stile anzuwenden. Alternativ k?nnen Sie eine UI-Bibliothek wie Bootstrap oder Material-UI verwenden, um Ihr Formular zu stylen. Sie k?nnen mit der Methode zur SendvericationEmail -Methode eine überprüfungs -E -Mail an den Benutzer senden. Diese Methode nimmt die ID des Benutzers als Parameter an und sendet eine E -Mail mit einem Link, den der Benutzer klicken kann, um die E -Mail -Adresse zu überprüfen. Sie k?nnen diese Methode aufrufen, nachdem Sie einen neuen Benutzer wie folgt erstellt haben:
E -Mail: 'test@example.com',
Passwort: 'Passwort'}, Funktion (err, userId) {
if (err) {// Fehler
} else { concesS.SendVerificationEmail (userId);
}
});
Wie kann ich bei der Benutzerregistrierung im Meteor Fehler umgehen? mit einem Fehlerobjekt, wenn ein Fehler auftritt. Dieses Fehlerobjekt enth?lt Informationen darüber, was schief gelaufen ist. Sie k?nnen diese Informationen verwenden, um dem Benutzer eine entsprechende Fehlermeldung anzuzeigen. Hier ist ein Beispiel:
contaces.createuser ({
Benutzername: 'testuser',
Passwort: 'Passwort'
}, Funktion (err) {
if (err) {{{{{{
console.log ('Fehler w?hrend der Registrierung:', err);
}); Funktionalit?t im Meteor? Sie k?nnen die Konten verwenden. Die contaces.ForGotPassword -Methode sendet eine E -Mail an den Benutzer mit einem Link, den sie klicken k?nnen, um das Kennwort zurückzusetzen. Die Methode von Accocts.ResetPassword wird verwendet, um das Kennwort des Benutzers tats?chlich zu ?ndern. Es nimmt das Token vom Reset -Link und das neue Passwort als Parameter aus.
Wie kann ich meiner Meteor -Anwendung eine soziale Anmeldung hinzufügen? und Twitter über seine Account -Pakete. Um Ihrer Anwendung eine soziale Anmeldung hinzuzufügen, müssen Sie das entsprechende Paket hinzufügen (z. B. Account-FaceBook für Facebook-Login) und es mit den Anmeldeinformationen Ihrer App vom Social Provider konfigurieren.
Wie kann ich den Zugriff auf bestimmte Routen basierend auf der Benutzerauthentifizierung im Meteor einschr?nken? zur Benutzerauthentifizierung. Sie k?nnen überprüfen, ob ein Benutzer in Meteor.Userid () oder meteor.user () angemeldet ist, und sie dann auf die Anmeldeseite umleiten, wenn dies nicht erfolgt.
Wie kann ich zus?tzliche Benutzerdaten in Meteor speichern
In Meteor k?nnen Sie zus?tzliche Benutzerdaten im Benutzerdokument in der Sammlung meteor.users speichern. Sie k?nnen diesem Dokument zus?tzliche Felder hinzufügen, wenn Sie einen neuen Benutzer mit Concontons.creatUser erstellen, oder Sie k?nnen ein vorhandenes Benutzerdokument mit zus?tzlichen Daten mit Meteor.Users.Update aktualisieren.
Wie kann ich rollenbasierten Zugriff implementieren Steuerung im Meteor? Mit diesem Paket k?nnen Sie Benutzern Rollen zuweisen und diese Rollen dann überprüfen, wenn Sie entscheiden, ob ein Benutzer eine bestimmte Aktion ausführen darf.
Wie kann ich einen Benutzer im Meteor auszeichnen? Kann einen Benutzer im Meteor mit der Meteor.Logout -Methode anmelden. Diese Methode meldet den aktuellen Benutzer im Client an und macht das Anmeldepolizei auf dem Server ungültig. Es wird auch eine Rückruffunktion ben?tigt, die ohne Argumente aufgerufen wird, wenn der Abmeldungsprozess abgeschlossen ist.
Das obige ist der detaillierte Inhalt vonErstellen eines benutzerdefinierten Login- und Registrierungsformulars mit Meteor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Java und JavaScript sind unterschiedliche Programmiersprachen, die jeweils für verschiedene Anwendungsszenarien geeignet sind. Java wird für die Entwicklung gro?er Unternehmen und mobiler Anwendungen verwendet, w?hrend JavaScript haupts?chlich für die Entwicklung von Webseiten verwendet wird.

JavaScriptComents AreseessentialFormaintaining, Lesen und GuidingCodeexexecution.1) einzelne Linecommments Arequickickexplanationen.2) Multi-LindexplainComproxlogicorProvedetailedDocumentation.3) InlinecommentsclarifyspecificPartsosensofCode.BestPracticic

Die folgenden Punkte sollten bei der Verarbeitung von Daten und Zeiten in JavaScript festgestellt werden: 1. Es gibt viele M?glichkeiten, Datumsobjekte zu erstellen. Es wird empfohlen, ISO -Format -Zeichenfolgen zu verwenden, um die Kompatibilit?t sicherzustellen. 2. Die Zeitinformationen erhalten und festlegen k?nnen und setzen Sie Methoden fest, und beachten Sie, dass der Monat mit 0 beginnt. 3. Die manuell formatierende Daten sind Zeichenfolgen erforderlich, und auch Bibliotheken von Drittanbietern k?nnen verwendet werden. 4. Es wird empfohlen, Bibliotheken zu verwenden, die Zeitzonen wie Luxon unterstützen. Das Beherrschen dieser wichtigen Punkte kann h?ufige Fehler effektiv vermeiden.

PlatztagsattheBottomofabogpostorwebpageServeSpracticalPurposesforseo, Usexperience und design.1ithelpswithseobyallowingEnginestoaccessKeyword-relevantTagswithoutClutteringHemainContent.2.

JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor

JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf

Ereigniserfassung und Blase sind zwei Phasen der Ereignisausbreitung in DOM. Die Erfassung erfolgt von der oberen Schicht bis zum Zielelement, und die Blase ist vom Zielelement bis zur oberen Schicht. 1. Die Ereigniserfassung wird implementiert, indem der UseCapture -Parameter von AddEventListener auf true festgelegt wird. 2. Ereignisblase ist das Standardverhalten, Uscapture ist auf false oder weggelassen. 3. Die Ereignisausbreitung kann verwendet werden, um die Ereignisausbreitung zu verhindern. 4. Event Bubbling unterstützt die Ereignisdelegation, um die Effizienz der dynamischen Inhaltsverarbeitung zu verbessern. 5. Capture kann verwendet werden, um Ereignisse im Voraus abzufangen, wie z. B. Protokollierung oder Fehlerverarbeitung. Das Verst?ndnis dieser beiden Phasen hilft dabei, das Timing und die Reaktion von JavaScript auf Benutzeroperationen genau zu steuern.

Java und JavaScript sind verschiedene Programmiersprachen. 1.Java ist eine statisch typisierte und kompilierte Sprache, die für Unternehmensanwendungen und gro?e Systeme geeignet ist. 2. JavaScript ist ein dynamischer Typ und eine interpretierte Sprache, die haupts?chlich für die Webinteraktion und die Front-End-Entwicklung verwendet wird.
