如何通过Mesosphere在Meteorite中传递登录回调以形成错误?

时间:2013-08-24 09:01:37

标签: meteor meteorite

我在我自己的自定义登录页面使用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)调用函数或方法但​​是如何返回成功或错误以及消息是如何处理的?

1 个答案:

答案 0 :(得分:0)

您可以使用onFailure回调覆盖默认错误功能。它与对象内的相同级别的字段相同。 https://github.com/copleykj/Mesosphere/blob/master/README.md#error-management