Meteorを使用したカスタムログインと登録フォームの作成
キーテイクアウト
- Meteorを使用したカスタムログインと登録フォームの作成には、Accounts-Passwordパッケージをインストールすることが含まれます。これにより、Meteor.usersコレクションが自動的にユーザーデータを保存し、ユーザー関連の機能のカスタムロジックを記述する必要性が排除されます。 ログインおよび登録システムのユーザーインターフェイスは、単純なHTMLフォームを使用して開発できます。これらのフォームのテンプレートには、電子メールとパスワードのフィールド、および送信ボタンが含まれています。
- イベントハンドラーを設定して、フォームとのユーザーインタラクションに応答することができます。たとえば、フォームのデフォルトの動作を防ぎ、フォームが送信されたときに確認メッセージを出力するために「フォームの送信」イベントを作成できます。 Accounts.createUser()やMeteor.loginWithPassword()などのMeteorの組み込みメソッド()を使用して、それぞれ新しいユーザーを登録し、既存のユーザーにログインできます。これらのメソッドは、サインアップ後にパスワードを自動的に暗号化し、ユーザーをログインして、記述する必要があるコードの量を減らします。 すぐに、Meteor JavaScriptフレームワークでできる最も簡単なことの1つは、ユーザーアカウントシステムを作成することです。 Accounts-PasswordとAccounts-UIのペアをインストールするだけで、次の完全な機能インターフェイスになります。
- しかし、このシンプルさは便利ですが、このボイラープレートインターフェイスに依存すると、柔軟性が多くなることはありません。では、ユーザーがWebサイトに登録してログインするためのカスタムインターフェイスを作成したい場合はどうなりますか? 幸いなことに、それほど難しくありません。この記事では、Meteorでカスタムログインと登録フォームを作成する方法を紹介します。ただし、この記事では、このフレームワークを使用してプロジェクトをセットアップする方法を自分のもので設定する方法を知っていると想定しています。 この記事で開発されたコードで再生するには、設定したGitHubリポジトリをご覧ください。 基本的なセットアップ
- 新しいMeteorプロジェクト内で、コマンドを実行してAccounts-Passwordパッケージを追加します。 このパッケージをプロジェクトに追加することにより、Meteor.usersコレクションが作成されてユーザーのデータを保存し、ユーザー関連の機能のカスタムロジックを記述する必要はありません。 したがって、カスタムインターフェイスを作成するということは、Accounts-UIパッケージの利便性を失うことを意味しますが、Meteorが提供できるバックエンド「マジック」の利便性を失う必要があるという意味ではありません。 インターフェイスの開発

登録
meteor <span>add accounts-password</span>
login
- パスワードを忘れた
- 「メールの確認」ページ
- 「電子メールが確認された」ページ
meteor <span>add accounts-password</span>
<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>
<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>
イベントの作成
現時点では、私たちのフォームは静的です。彼らに何かをさせるには、送信イベントに反応する必要があります。 「レジスタ」テンプレートに焦点を当てて、これを示しましょう。 プロジェクトのJavaScriptファイル内で、以下を書きます。<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>
- 送信イベントに応答します
- デフォルトの動作はありません
- コンソールに確認メッセージを出力します
<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>
<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>
一緒に物事を接続する
Accounts-Passwordパッケージをプロジェクトに追加した後、多くの方法が利用可能になりました。- accounts.createuser()
- Accounts.ChangePassWord()
- accounts.forgotpassword()
- accounts.resetpassword()
- accounts.setPassWord()
- accounts.verifyemail()
meteor <span>add accounts-password</span>
<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>
<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>
<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>
<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>
<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>
ログアウト
ユーザーは登録してログインできるようになりましたが、ログインしたときに表示される新しい「ダッシュボード」テンプレートを最初に作成しましょう。<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>
<span>Accounts.createUser({ </span> <span>// options go here </span><span>});</span>
<span>Accounts.createUser({ </span> <span>email: emailVar, </span> <span>password: passwordVar </span><span>});</span>
<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>
結論
少数のコードで十分な進歩を遂げましたが、アカウントシステムの完全なインターフェイスを作成したい場合は、まだやるべきことがたくさんあります。 これが私が提案するものです:- 新しいユーザーの電子メールの検証を有効にします。 ユーザーの作成(およびログイン)を検証します
- 「登録」および「ログイン」フォームに視覚的検証を追加します ログインの試行が失敗したときに何かをします。
- ユーザーがパスワードを変更できるようにします
- これらの機能を実装する方法の詳細を把握するには午後かかるかもしれませんが、このチュートリアルで説明したものに基づいて、それはあなたの手の届かないところにありません。 Meteorは私たちのために大変な仕事をしています。 この記事で開発されたコードで再生したい場合は、設定したGitHubリポジトリをご覧ください。 Meteorを使用してカスタムログイン/登録フォームの作成に関するよくある質問(FAQ) Meteorの登録フォームに追加のフィールドを追加するにはどうすればよいですか?
- Meteorの登録フォームに追加のフィールドを追加するのは非常に簡単です。アカウントにフィールドを追加することにより、ユーザープロファイルを拡張できます。CreateUserメソッド。たとえば、ユーザーのフルネームのフィールドを追加する場合は、次のように行うことができます:
accounts.createuser({
> username: 'testuser'、パスワード: 'パスワード'、
プロフィール:{}
});
この例では、「FullName」はユーザープロファイルに追加された追加フィールドです。 meteor.user()。profile.fullname。
Meteor/登録フォームの外観をMeteor?
Meteorにカスタマイズするにはどうすればよいですか?ログイン/登録フォームの外観をカスタマイズするための組み込みの方法。ただし、CSSを使用して、ニーズに応じてフォームをスタイリングできます。フォーム要素にクラスを割り当ててから、CSSファイルのこれらのクラスを使用してスタイルを適用できます。または、BootstrapやMaterial-UIなどのUIライブラリを使用してフォームをスタイリングすることもできます。 パスワード: 'password' Meteorの組み込みアカウントパッケージとFlowrouterやIron Routerなどのルーティングパッケージを使用して、特定のルートベースのルートへのアクセスを制限できます。ユーザー認証について。ユーザーがmeteor.userid()またはmeteor.user()を使用してログインしているかどうかを確認し、それらがそうでない場合はログインページにリダイレクトできます。 ?accounts.createuser({
email: 'test@example.com'、
}、 function(err、userid){
if(err){
// handle error
} }
});
meteorでのユーザー登録中にエラーを処理するにはどうすればよいですか?
accounts.createuserを使用して新しいユーザーを作成すると、呼び出されるコールバック関数を提供できます。エラーが発生した場合、エラーオブジェクトを使用します。このエラーオブジェクトには、何がうまくいかなかったかに関する情報が含まれています。この情報を使用して、適切なエラーメッセージをユーザーに表示できます。例は次のとおりです。
accounts.createuser({ username: 'testuser'、password: 'password'
}、function(err){if(err){
console.log( '登録中のエラー:'、err);
}
});
パスワードを実装するにはどうすればよいですかMeteorの機能性をリセットしますか?
Meteorは、パスワードリセット機能の組み込みサポートを提供します。 accounts.forgotpasswordとaccounts.resetpasswordメソッドを使用して、これを実装できます。 accounts.forgotpasswordメソッドは、クリックしてパスワードをリセットできるリンクを使用してユーザーにメールを送信します。 accounts.resetpasswordメソッドは、実際にユーザーのパスワードを変更するために使用されます。リセットリンクからのトークンと新しいパスワードをパラメーターとして使用します。
MetEorアプリケーションにソーシャルログインを追加するにはどうすればよいですか?アカウントパッケージを介したTwitter。ソーシャルログインをアプリケーションに追加するには、適切なパッケージ(たとえば、Facebookログイン用のAccounts-FaceBook)を追加し、ソーシャルプロバイダーからのアプリの資格情報で構成する必要があります。Meteorでのユーザー認証に基づいて特定のルートへのアクセスを制限するにはどうすればよいですか?
Meteorでは、Meteor.usersコレクションのユーザードキュメントに追加のユーザーデータを保存できます。アカウントを使用して新しいユーザーを作成するときにこのドキュメントに追加のフィールドを追加できます。Createuserを使用するか、Meteor.users.updateを使用して追加データを使用して既存のユーザードキュメントを更新することができます。 Meteorでの制御?
以上がMeteorを使用したカスタムログインと登録フォームの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
