当用户尝试更改重要设置时,许多网站会再次要求输入密码(即使他们已经登录)。
我如何通过Meteor实现这一目标?
答案 0 :(得分:1)
Accounts
现在提供了一种方便的Accounts._checkPassword
方法(现在已经有一段时间了)。它只适用于服务器端,但是David Weldon只为你要问的内容编写了一个很好的教程:
为方便起见,以下是代码示例。我删除了加密部分,以降低复杂性。 (You should use SSL rather than rely on client-side encryption anyway,但这是另一个故事)
在客户端,我们捕获密码输入事件并调用自定义服务器方法:
Template.userAccount.events({
'click #check-password': function() {
var password = $('#password').val();
Meteor.call('checkPassword', password, function(err, result) {
if (result) {
console.log('the passwords match!');
}
});
}
});
然后在服务器端,这是为调用_checkPassword
和回答客户端而定义的方法:
Meteor.methods({
checkPassword: function(password) {
check(password, String);
if (this.userId) {
var user = Meteor.user();
var result = Accounts._checkPassword(user, password);
return result.error == null;
} else {
return false;
}
}
});