OK - jag kom på det här.
På mitt lokala system hade jag en nyare version av noden, men på min distribuerade version (på AWS ElasticBeanstalk) använde den v0.10.36.
Om du tittar på koden för passport-local-mongoose
du kommer att se detta:
var pbkdf2DigestSupport = semver.gte(process.version, '0.12.0');
...
var pbkdf2 = function(password, salt, callback) {
if (pbkdf2DigestSupport) {
crypto.pbkdf2(password, salt, options.iterations, options.keylen, options.digestAlgorithm, callback);
} else {
crypto.pbkdf2(password, salt, options.iterations, options.keylen, callback);
}
};
Så om de två olika versionerna av noden har en över 0.12.0 och en under, kommer du att få olika kryptofunktioner.