我正在为我自己的自定义登录页面使用 Mesosphere 表单包。下面是登录表单:
Mesosphere({
name: "loginForm",
method: "login",
fields: {
usernameEmail: {
required: true,
format: /^[a-zA-Z0-9_]{2,25}$/i,
message: "only alphanumeric usernames",
transform:["trim"]
},
password: {
required: true,
message: "6-25 characters please",
rules:{
maxLength:25,
minLength:6
}
}
}
});
一旦我验证了对象,我想确保这个用户登录信息是有效的,如果没有将信息传回以呈现为错误。
Meteor.methods({
login: function (rawFormData) {
var validationObject = Mesosphere.loginForm.validate(rawFormData);
console.log("logging in...");
if (!validationObject.errors) {
Meteor.loginWithPassword(validationObject.formData.usernameOrEmail,
validationObject.formData.password,
function (err) {
if (err) {
//user doesnt exit
console.log("user doesnt exist");
}
else {
//user logged in...
console.log("logged in");
}
}
);
}
else {
console.log("errors:" + JSON.stringify(validationObject.errors));
}
},
我想指定要显示的用户名错误或密码错误。
<template name="login">
log in please
<form name="loginForm">
<p><input type="text" name="usernameOrEmail" placeholder="username or email"/></p>
<span id="usernameOrEmail-error"></span>
<p><input type="password" name="password" placeholder="password"/></p>
<span id="password-error"></span>
<input type="submit" value="Login"> or <a href="{{pathFor 'signup'}}">Sign Up</a>
</form>
澄清:
我希望能够在客户端或服务器上实现额外的验证步骤。在客户端上,我希望能够检查给定的登录凭据是否有效(在客户端上)。如果我正在创建一个新用户,我希望能够检查具有该用户名的用户是否不存在(在服务器上)。
说明 2:
我了解您可以使用“方法”元素( https://github.com/copleykj/Mesosphere#basics-elements )调用函数或方法,但是如何返回成功或错误以及如何处理消息?