首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Meteor : Accounts onCreateUser

Meteor : Accounts onCreateUser
EN

Stack Overflow用户
提问于 2013-12-27 00:03:44
回答 2查看 1.9K关注 0票数 0
代码语言:javascript
复制
Accounts.onCreateUser(function(options,user){
  if (options.password.length < 6 && options.password.length != 0) {
    throw new Meteor.Error();
  } else if (options.password.length == 0) {
    throw new Meteor.Error();
  } else {
    user.password = options.password;
  }
});

简单的服务器端验证。

下面是我的create user调用:

Accounts.createUser({email:email,username:username,password:password,profile:{firstname:firstname,lastname:lastname}},function(error){});

没有服务器端的验证,它就可以顺利地工作。

问题是..。当我使用onCreateUser时,它显示未定义的长度。

我猜.length才是问题所在。但我需要它。有什么解决方法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-12-27 00:05:40

你不能这么做。密码在代码中是显式的deleted

代码语言:javascript
复制
// Attempt to log in as a new user.
Accounts.createUser = function (options, callback) {
  options = _.clone(options); // we'll be modifying options

  if (!options.password)
    throw new Error("Must set options.password");
  var verifier = SRP.generateVerifier(options.password);
  // strip old password, replacing with the verifier object
  delete options.password;
  options.srp = verifier;
票数 0
EN

Stack Overflow用户

发布于 2015-06-30 12:07:34

options对象具有以下结构:

代码语言:javascript
复制
{
    username: 'dummy',
    email: 'dumm@example.com',
    password: {
        digest: '7d1a54127b222502f5b79b5fb0803061152a44f92b37e23c6527baf665d4da9a',
        algorithm: 'sha-256'
    }
}

正如您所看到的,password字段是一个带有摘要(散列)的对象,因此您无法在服务器上检索密码(也无法测试其长度)。

看起来您随后在服务器中的how to check password length上提出了另一个问题。这个问题的答案证明了你做不到的事实。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20787620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档