C:\Users\Administrator\Desktop\meteorApp>meteor add accounts-password
這個例子顯示基本身份驗證功能。我們將建立註冊,登入和主頁這幾個模板。如果有一個 currentUser(如果使用者成功註冊或登入),主頁模板將被顯示。 如果沒有 currentUser,註冊和登入模板將被顯示。
<head> <title>meteorApp</title> </head> <body> {{#if currentUser}} {{> home}} {{else}} {{> register}} {{> login}} {{/if}} </body> <template name = "register"> <h2>REGISTER:</h2> <form> <input type = "email" name = "registerEmail"><br> <input type = "password" name = "registerPassword"><br> <input type = "submit" value = "Register"><br> </form> </template> <template name = "login"> <h2>LOGIN:</h2> <form> <input type = "email" name = "loginEmail"><br> <input type = "password" name="loginPassword"><br> <input type = "submit" value = "Login"><br> </form> </template> <template name = "home"> <p>You're logged in.</p> <button class = "logout">Logout</button> </template>
首先,我們需要建立註冊事件。這個功能將讀取註冊輸入,建立新的使用者,並將其儲存到資料庫。
第二個事件登入。這一次的功能將讀取登入模板的使用者輸入資訊,如果電子郵件地址和密碼是有效的,或者無效則返回一個錯誤。
if (Meteor.isClient) { Template.register.events({ 'submit form': function(event) { event.preventDefault(); var registerData = { email: event.target.registerEmail.value, password: event.target.registerPassword.value } Accounts.createUser(registerData, function(error){ if (Meteor.user()) { console.log(Meteor.userId()); } else { console.log("ERROR: " + error.reason); } }); } }); Template.login.events({ 'submit form': function(event){ event.preventDefault(); var myEmail = event.target.loginEmail.value; var myPassword = event.target.loginPassword.value; Meteor.loginWithPassword(myEmail, myPassword, function(error){ if (Meteor.user()) { console.log(Meteor.userId()); } else { console.log("ERROR: " + error.reason); } }); } }); Template.home.events({ 'click .logout': function(event){ event.preventDefault(); Meteor.logout(function(error) { if(error) { console.log("ERROR: " + error.reason); } }); } }); }
如果我們在登錄檔單中輸入電子郵件地址和密碼,就可以註冊並登入新使用者。現在可以看到控制台登入的使用者ID 以及 home 模板將顯示。
登入事件將檢查資料庫並紀錄檔記錄使用者資訊,檢查電子郵件地址和密碼是否正確。如果不正確,控制台將記錄一個錯誤。
如果使用者點選LOGOUT 按鈕,該應用程式會記錄退出並顯示註冊和登入的模板。