'不正确的参数'由bcrypt-nodejs抛出 - Passport

时间:2016-07-04 01:14:08

标签: javascript node.js express coffeescript passport.js

我为我的Node.js应用程序设置了登录系统。最近我改变了我的用户模型(CoffeeScript):

password: String

password:
        type: String
        select: false

我将密码哈希与bcrypt进行比较的功能如下:

userSchema.methods.validPassword = (password) ->
        bcrypt.compareSync password, @local.password

现在,每当我运行上述函数时,都会抛出此错误

Incorrect arguments

在添加" select:false"之后,任何人都知道为什么会抛出这个。到我的用户模型?

4 个答案:

答案 0 :(得分:0)

如果密码或@ local.password不是字符串,则抛出此异常。它恰好发生在我身上,因为我试图在加载的属性中不包含@ local.password的实例上调用实例方法。

答案 1 :(得分:0)

=>

假设这是在课堂上,您需要->而不是@local才能使public abstract class BaseAppActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("TESTING", "CREATED: " + getClass().getSimpleName() + " -- TASK ID: " + getTaskId()); } @Override protected void onDestroy() { super.onDestroy(); Log.i("TESTING", "DESTROYED: " + getClass().getSimpleName() + " -- TASK ID: " + getTaskId()); } } 正常工作。

答案 2 :(得分:0)

记录保存的密码和输入密码的值。我敢打赌,其中之一是不确定的。

答案 3 :(得分:-1)

检查密码的值是否已填充。设置选择false将不会检索密码值。