Membuat borang log masuk dan pendaftaran tersuai dengan meteor
Takeaways Key
Tetapi sementara kesederhanaan ini mudah, bergantung pada antara muka boilerplate ini tidak betul -betul membenarkan banyak fleksibiliti. Jadi bagaimana jika kita mahu membuat antara muka tersuai untuk pengguna kami mendaftar dan log masuk ke laman web kami?
Nasib baik, ia tidak terlalu sukar sama sekali. Dalam artikel ini saya akan menunjukkan kepada anda bagaimana untuk membuat log masuk dan borang pendaftaran tersuai dengan Meteor. Walau bagaimanapun, artikel ini mengandaikan bahawa anda tahu bagaimana untuk menubuhkan projek menggunakan rangka kerja ini sendiri.
Untuk bermain dengan kod yang dibangunkan dalam artikel ini, lihatlah repositori GitHub yang saya buat.
Persediaan Asas
Di dalam projek meteor baru, tambahkan pakej kata laluan akaun dengan melaksanakan arahan:
Dengan menambahkan pakej ini kepada projek koleksi meteor.users akan dibuat untuk menyimpan data pengguna kami dan kami tidak perlu menulis logik tersuai untuk fungsi yang berkaitan dengan pengguna.
Oleh itu, walaupun mewujudkan antara muka tersuai bermakna kita akan kehilangan kemudahan pakej akaun-UI, itu tidak bermakna kita harus kehilangan kemudahan "sihir" back-end yang dapat disediakan oleh Meteor.
meteor <span>add accounts-password</span>
Untuk sistem log masuk dan pendaftaran yang lengkap, terdapat banyak ciri yang perlu kita buat antara muka, termasuk:
Pendaftaran
Tetapi buat masa ini, kami akan bercakap mengenai dua mata pertama yang disenaraikan (pendaftaran dan log masuk). Sebabnya ialah tidak sukar bagi anda untuk mengetahui cara membuat antara muka yang lain sebaik sahaja anda mendapat pegangan pada asas -asas.
Coretan berikut menunjukkan kod borang pendaftaran:
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>
Membuat peristiwa
Pada masa ini, borang kami adalah statik. Untuk membuat mereka melakukan sesuatu, kami memerlukan mereka untuk bertindak balas terhadap acara penyerahan. Mari kita tunjukkan ini dengan memberi tumpuan kepada templat "daftar".
Di dalam fail JavaScript projek, tulis yang berikut:
<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>
Kami juga meletakkan kod ini di dalam Isclient Conditional kerana kami tidak mahu kod ini berjalan pada pelayan (kerana ia hanya dimaksudkan untuk antara muka).
Di dalam acara ini, kami ingin merebut nilai medan e -mel dan kata laluan, dan menyimpannya dalam sepasang pembolehubah. Oleh itu mari kita ubah kod sebelumnya:
<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>
Hooking Things Together
Selepas menambah pakej kata laluan akaun ke projek, beberapa kaedah menjadi tersedia kepada kami:
Kami akan memberi tumpuan kepada kaedah CreateUser tetapi, berdasarkan nama kaedah, tidak sukar untuk mengetahui tujuan yang lain.
Di bahagian bawah acara hantar untuk templat "daftar", tulis:
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>
Logging Out
Pengguna kini boleh mendaftar dan log masuk tetapi, untuk membolehkan mereka keluar, mari kita buat pertama kali membuat template "pemuka" baru yang akan ditunjukkan ketika log masuk:
<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>
KESIMPULAN
Dayakan pengesahan e -mel pengguna baru.
Soalan Lazim (Soalan Lazim) Mengenai Membuat Borang Login/Pendaftaran Custom Dengan Meteor
Bagaimana saya boleh menambah medan tambahan ke borang pendaftaran dalam meteor?
Menambah medan tambahan ke borang pendaftaran di Meteor agak mudah. Anda boleh melanjutkan profil pengguna dengan menambahkan lebih banyak medan dalam Kaedah Akaun.CreateUser. Contohnya, jika anda ingin menambah medan untuk nama penuh pengguna, anda boleh melakukannya seperti ini:
accounts.createuser ({
nama pengguna: 'testuser',
kata laluan: 'kata laluan ',
profil: {
}
});
Dalam contoh ini, 'FullName' adalah medan tambahan yang ditambahkan ke profil pengguna. Anda boleh mengakses medan ini kemudian menggunakan meteor.user (). Profile.fullname.
Bagaimana saya boleh menyesuaikan penampilan borang log masuk/pendaftaran dalam meteor? cara terbina dalam untuk menyesuaikan penampilan borang log masuk/pendaftaran. Walau bagaimanapun, anda boleh menggunakan CSS untuk gaya bentuk mengikut keperluan anda. Anda boleh menetapkan kelas ke elemen bentuk dan kemudian gunakan kelas ini dalam fail CSS anda untuk memohon gaya. Sebagai alternatif, anda boleh menggunakan perpustakaan UI seperti bootstrap atau bahan-UI untuk gaya borang anda.
Bagaimana saya boleh melaksanakan pengesahan e-mel dalam meteor? Anda boleh menggunakan Kaedah Accounts.SendVerificationEmail untuk menghantar e -mel pengesahan kepada pengguna. Kaedah ini mengambil ID pengguna sebagai parameter dan menghantar e -mel dengan pautan pengguna boleh mengklik untuk mengesahkan alamat e -mel mereka. Anda boleh menghubungi kaedah ini selepas membuat pengguna baru seperti ini:
accounts.createuser ({ e -mel: 'test@example.com',
kata laluan: 'kata laluan' }, fungsi (err, userId) {
if (err) {
} else {
Accounts.sendVerificationEmail (userId);
}); Anda boleh memberikan fungsi panggil balik yang akan dipanggil dengan objek ralat jika ralat berlaku. Objek ralat ini mengandungi maklumat mengenai apa yang berlaku. Anda boleh menggunakan maklumat ini untuk memaparkan mesej ralat yang sesuai kepada pengguna. Berikut adalah contoh:
accounts.CreateUser ({
username: 'testuser',
kata laluan: 'kata laluan'
}, fungsi (err) {
console.log ('Ralat semasa pendaftaran:', err); Meteor menyediakan sokongan terbina dalam untuk fungsi semula kata laluan. Anda boleh menggunakan akaun.forgotPassword dan akaun. Kaedah Akauns.ForgotPassword menghantar e -mel kepada pengguna dengan pautan yang mereka boleh klik untuk menetapkan semula kata laluan mereka. Kaedah Akauns.ResetPassword digunakan untuk mengubah kata laluan pengguna. Ia mengambil token dari pautan semula dan kata laluan baru sebagai parameter.
bagaimana saya boleh menyekat akses ke laluan tertentu berdasarkan pengesahan pengguna di meteor? pada pengesahan pengguna. Anda boleh menyemak sama ada pengguna log masuk menggunakan meteor.userid () atau meteor.user () dan kemudian mengalihkannya ke halaman log masuk jika mereka tidak. ? Anda boleh menambah medan tambahan ke dokumen ini semasa membuat pengguna baru dengan akaun. Kawalan dalam meteor?
Meteor tidak menyediakan sokongan terbina dalam untuk kawalan akses berasaskan peranan, tetapi anda boleh menggunakan pakej seperti Alanning: peranan untuk menambah fungsi ini ke aplikasi anda. Pakej ini membolehkan anda memberikan peranan kepada pengguna dan kemudian periksa peranan ini apabila memutuskan sama ada pengguna dibenarkan melakukan tindakan tertentu. boleh log keluar pengguna dalam meteor menggunakan kaedah meteor.logout. Kaedah ini log pengguna semasa pada klien dan membatalkan token login pada pelayan. Ia juga mengambil fungsi panggil balik yang akan dipanggil tanpa hujah apabila proses logout selesai.
Atas ialah kandungan terperinci Membuat borang log masuk dan pendaftaran tersuai dengan meteor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Masalah kemas kini data dalam operasi Zustand Asynchronous. Apabila menggunakan Perpustakaan Pengurusan Negeri Zustand, anda sering menghadapi masalah kemas kini data yang menyebabkan operasi tak segerak menjadi tidak lama lagi. � ...
