Sequelize classMethods vs instanceMethods

Então, iniciando minha aventura em todas as coisas. Uma das ferramentas que estou tentando aprender é Sequelize. Então, vou começar o que estava tentando fazer:

'use strict';
var crypto = require('crypto');

module.exports = function(sequelize, DataTypes) {
  var User = sequelize.define('User', {
    username: DataTypes.STRING,
    first_name: DataTypes.STRING,
    last_name: DataTypes.STRING,
    salt: DataTypes.STRING,
    hashed_pwd: DataTypes.STRING
  }, {
    classMethods: {

    },
    instanceMethods: {
      createSalt: function() {
        return crypto.randomBytes(128).toString('base64');
      },
      hashPassword: function(salt, pwd) {
        var hmac = crypto.createHmac('sha1', salt);

        return hmac.update(pwd).digest('hex');
      },
      authenticate: function(passwordToMatch) {
        return this.hashPassword(this.salt, passwordToMatch) === this.hashed_pwd;
      }
    }
  });
  return User;
};

Estou confuso sobre quando usarclassMethods vsinstanceMethods. Para mim quando penso emcreateSalt() ehashPassword() devem ser métodos de classe. Eles são gerais e, na maioria das vezes, realmente não têm nada a ver com a instância específica em que são usados em geral. Mas quando eu tivercreateSalt() ehashPassword() noclassMethods Eu não posso ligar para eles deinstanceMethods.

Eu tentei variações do seguinte:

this.createSalt();
this.classMethods.createSalt();
createSalt();

Algo como abaixo não funcionará e provavelmente não estou entendendo algo simples.

authenticate: function(passwordToMatch) {
  console.log(this.createSalt());
  return this.hashPassword(this.salt, passwordToMatch) === this.hashed_pwd;
}

Quaisquer dicas / dicas / direção seria muito apreciada!

questionAnswers(3)

yourAnswerToTheQuestion