我在我自己的自定义登录页面使用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:
我知道您可以使用“method”元素(https://github.com/copleykj/Mesosphere#basics-elements)调用函数或方法但是如何返回成功或错误以及消息是如何处理的?
答案 0 :(得分:0)
您可以使用onFailure回调覆盖默认错误功能。它与对象内的相同级别的字段相同。 https://github.com/copleykj/Mesosphere/blob/master/README.md#error-management