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>
Membangunkan antara muka
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>
Coretan seterusnya menunjukkan kod borang log masuk sebaliknya:
<span><span><span><template> name<span>="register"</span>></template></span>
</span> <span><span><span><form>></form></span>
</span> <span><span><span><input> type<span>="email"</span> name<span>="registerEmail"</span>></span>
</span> <span><span><span><input> type<span>="password"</span> name<span>="registerPassword"</span>></span>
</span> <span><span><span><input> type<span>="submit"</span> value<span>="Register"</span>></span>
</span> <span><span><span></span>></span>
</span><span><span><span></span>></span></span></span></span></span></span></span>
Seperti yang anda lihat, templat sangat serupa. Mereka mengandungi borang, medan untuk e -mel dan kata laluan, dan butang Hantar. Satu -satunya perbezaan ialah nilai atribut nama untuk medan input dan templat. (Kami akan merujuk nilai -nilai tersebut tidak lama lagi, jadi pastikan mereka unik.)
Kami hanya mahu templat ini ditunjukkan untuk pengguna yang belum diketahui. Oleh itu kita boleh merujuk kepada objek semasa yang di antara badan pembukaan dan penutupan
Tag:
<span><span><span><template> name<span>="login"</span>></template></span>
</span> <span><span><span><form>></form></span>
</span> <span><span><span><input> type<span>="email"</span> name<span>="loginEmail"</span>></span>
</span> <span><span><span><input> type<span>="password"</span> name<span>="loginPassword"</span>></span>
</span> <span><span><span><input> type<span>="submit"</span> value<span>="Login"</span>></span>
</span> <span><span><span></span>></span>
</span><span><span><span></span>></span></span></span></span></span></span></span>
Kod ini menunjukkan mesej "anda log masuk" jika pengguna semasa log masuk, dan templat "daftar" dan "log masuk" sebaliknya.
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>></span>
</span> <span><span><span><title>></title></span>Custom Registration Tutorial<span><span></span>></span>
</span><span><span><span></span>></span>
</span><span><span><span>></span>
</span> {{#if currentUser}}
<span><span><span><p>></p></span>You're logged in.<span><span></span></span></span></span></span></span></span>
- bertindak balas terhadap acara penyerahan
- tidak mempunyai tingkah laku lalai
- mengeluarkan mesej pengesahan pada konsol
<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>Untuk templat "log masuk", kod tersebut hampir sama:
<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:- accounts.createuser ()
- accounts.ChangePassword ()
- accounts.forgotPassword ()
- accounts.resetpassword ()
- accounts.setPassword ()
- accounts.verifyeMail ()
meteor <span>add accounts-password</span>Ini adalah kod yang boleh kita gunakan untuk membuat pengguna baru dan, secara lalai, ia memerlukan dua pilihan: e -mel dan kata laluan. Untuk melewati mereka, tulis:
<span><span><span><template> name<span>="register"</span>></template></span> </span> <span><span><span><form>></form></span> </span> <span><span><span><input> type<span>="email"</span> name<span>="registerEmail"</span>></span> </span> <span><span><span><input> type<span>="password"</span> name<span>="registerPassword"</span>></span> </span> <span><span><span><input> type<span>="submit"</span> value<span>="Register"</span>></span> </span> <span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span>Kod akhir untuk acara itu harus menyerupai:
<span><span><span><template> name<span>="login"</span>></template></span> </span> <span><span><span><form>></form></span> </span> <span><span><span><input> type<span>="email"</span> name<span>="loginEmail"</span>></span> </span> <span><span><span><input> type<span>="password"</span> name<span>="loginPassword"</span>></span> </span> <span><span><span><input> type<span>="submit"</span> value<span>="Login"</span>></span> </span> <span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span>Dengan menggunakan kod ini dan bukannya sisipan generik Fungsi Kami mempunyai kelebihan bahawa kata laluan disulitkan secara automatik. Selain itu, pengguna dilog masuk selepas mendaftar dan kami tidak perlu menulis banyak kod. Terdapat juga kaedah LoginWithPassword () yang boleh kita gunakan dalam acara "Login":
<span><span><span>></span> </span> <span><span><span><title>></title></span>Custom Registration Tutorial<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span>></span> </span> {{#if currentUser}} <span><span><span><p>></p></span>You're logged in.<span><span></span>></span> </span> {{else}} {{> register}} {{> login}} {{/if}} <span><span><span></span>></span></span></span></span></span></span>Ia juga menerima nilai e -mel dan kata laluan:
<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>Dan dalam konteks, inilah yang kelihatan seperti kod:
<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>Kemudian masukkan kod berikut dalam pernyataan IF yang kami tulis sebelum ini dalam artikel ini:
<span>Accounts.createUser({ </span> <span>// options go here </span><span>});</span>Sekarang kita boleh membuat acara yang dilampirkan pada pautan "Logout" dalam templat "Dashboard":
<span>Accounts.createUser({ </span> <span>email: emailVar, </span> <span>password: passwordVar </span><span>});</span>Untuk melaksanakan proses pembalakan, kita hanya perlu menggunakan kaedah logout seperti itu:
<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>Mendaftarkan, log masuk, dan pembalakan kini harus berfungsi seperti yang diharapkan.
KESIMPULAN
Kami telah membuat kemajuan yang baik dengan jumlah kod yang kecil, tetapi jika kami ingin membuat antara muka lengkap untuk sistem akaun, masih banyak lagi yang perlu dilakukan.
Inilah yang saya cadangkan:
- Dayakan pengesahan e -mel pengguna baru.
- Mengesahkan penciptaan (dan pembalakan) pengguna.
- Tambahkan pengesahan visual ke borang "Daftar" dan "Log masuk".
- Lakukan sesuatu apabila percubaan masuk gagal.
- Benarkan pengguna menukar kata laluan mereka.
- Ia mungkin mengambil petang untuk mengetahui spesifik tentang cara melaksanakan ciri -ciri ini tetapi, berdasarkan apa yang telah kami tutupi dalam tutorial ini, tidak ada yang tidak dapat dicapai. Meteor melakukan kerja keras untuk kita. Sekiranya anda ingin bermain dengan kod yang dibangunkan dalam artikel ini, lihatlah repositori GitHub yang saya buat.
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!

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan


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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),