私はそれは私がこれまでやってされてきた方法です、私のユーザーのスキーマとパスワードの検証を行う方法を見つけ出すのに苦労しています:流星のパスワード検証
これはスキーマです:
Schema = {};
Schema.UserProfile = new SimpleSchema({
//LOTS OF FIELDS WORKING FINE
});
Schema.User = new SimpleSchema({
username: {
type: String,
optional: true
},
emails: {
type: Array,
},
"emails.$": {
type: Object
},
"emails.$.address": {
type: String,
regEx: SimpleSchema.RegEx.Email
},
"emails.$.verified": {
type: Boolean
},
createdAt: {
type: Date
},
profile: {
type: Schema.UserProfile,
label: "Perfil",
optional: false
},
services: {
type: Object,
blackbox: true
},
"services.$": {
type: Object,
blackbox: true
},
"services.$.password": { // IS IT RIGHT?
type: String,
label: "Senha",
min: 8
},
roles: {
type: String,
optional: true
}
});
Meteor.users.attachSchema(Schema.User);
そして、これは私が節約している方法です:
let company = {};
company = {
email: $('#email').val(),
password: $('#password').val(),
roles: 'company',
profile: companyProfile
}
Meteor.call('saveUser', company, function(error, result) {
if (error) {
console.log(error);
}
}
Meteor.methods({
saveUser: function(data) {
return Accounts.createUser(data);
}
});
私はまだ初心者ですから、ここで何かを迷惑にしている可能性があります。ユーザーを作成しようとすると、いずれかのフィールドで問題が発生した場合、検証によって予期したとおりにエラーがスローされます。しかし、私がパスワードを紛失した場合にはエラーはスローされません。ここで間違っているアイデアはありますか?
-------------------------------更新-------------- --------------------
ありがとう@aedmあなたの答えです。私は本当に私は、パスワードとパスワードの確認を検証するために、このようなものを持っていることがしたい:
password: {
type: String,
label: "Senha",
min: 8
},
password_confirmation: {
type: String,
label: "Confirmação de Senha",
min: 8,
custom: function() {
if (this.value !== this.field('password').value) {
return "passwordMismatch";
}
}
},
私はそれが、その後は不可能だと思う、それはありますか?