独自のカスタム ログイン ページに 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 )を使用して関数またはメソッドを呼び出すことができることは理解していますが、成功またはエラーを返すにはどうすればよいですか? また、メッセージはどのように処理されますか?