meteor <span>add accounts-password</span>注册
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>
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>通过使用此代码而不是通用插入 函数我们的优势是密码会自动加密。此外,注册后登录了用户,我们不必编写太多代码。 还有一个loginwithpassword()方法,我们可以在“登录”事件中使用:
<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>然后将以下代码包含在我们本文之前写的IF语句中:
<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>现在应按预期工作,注册,登录和登录。
用户名:'tastuser',
密码:'密码:' ',
profile:{
fullname:'test用户'
}
});
在此示例中,“ FullName”是添加到用户配置文件中的附加字段。您可以稍后使用Meteor.user()。profile.fullname。
Meteor为电子邮件验证提供内置支持。您可以使用帐户。sendverificiencemail方法向用户发送验证电子邮件。此方法将用户的ID作为参数,并发送带有链接的电子邮件,用户可以单击以验证其电子邮件地址。创建这样的新用户之后,您可以调用此方法:
accounts.createuser({
电子邮件:'test@example.com',
密码:'password'
}, function(err,userId){
> if(err){
//处理错误
} else {
accounts.sendverificitionEmail(userId);
> }
在使用accounts.createuser创建新用户时,您可以提供一个被调用的回调函数如果发生错误,则使用错误对象。此错误对象包含有关出了什么问题的信息。您可以使用此信息向用户显示适当的错误消息。以下是一个示例:
accounts.createuser({
>用户名:'tastuser',
密码:'password'
},function(err){
if(err)if(err){
> console.log('注册期间的错误:',err);
}
>您可以使用Meteor的内置帐户包以及诸如FlowRouter或Iron Router之类的路由套件来限制基于某些路由的路由器关于用户身份验证。您可以在使用Meteor.userid()或Meteor.user()中检查用户是否已登录。 ?
流星无法为基于角色的访问控制提供内置支持,但是您可以使用诸如Alanning:角色之类的软件包将此功能添加到您的应用程序中。此软件包允许您将角色分配给用户,然后在确定是否允许用户执行某个操作时检查这些角色。
>以上是用流星创建自定义登录和注册表格的详细内容。更多信息请关注PHP中文网其他相关文章!