turtl/tracker

Error Creating First User

rbradcurtis opened this issue · 2 comments

Fresh clone of server repo, connecting from MacOS client.

Upon trying to create a user (the first user in this private instance) the following error is received:

debug: db: query: SELECT * FROM users WHERE username = $1 LIMIT 1 0=[my email address]
error: tres.err -- (uid null): TypeError: Salt must be a buffer
at pbkdf2 (crypto.js:702:20)
at Object.exports.pbkdf2Sync (crypto.js:687:10)
at secure_hash (/home/turtl/turtl/server/models/user.js:36:19)
at auth_hash (/home/turtl/turtl/server/models/user.js:86:9)
at /home/turtl/turtl/server/models/user.js:138:15
at tryCatcher (/home/turtl/turtl/server/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/turtl/turtl/server/node_modules/bluebird/js/release/promise.js:510:31)
at Promise._settlePromise (/home/turtl/turtl/server/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromise0 (/home/turtl/turtl/server/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/home/turtl/turtl/server/node_modules/bluebird/js/release/promise.js:691:18)
at Async._drainQueue (/home/turtl/turtl/server/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/home/turtl/turtl/server/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/home/turtl/turtl/server/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:794:20)
at tryOnImmediate (timers.js:752:5)
at processImmediate [as _immediateCallback] (timers.js:729:5)
info: [CLIENT IP ADDRESS] "POST /users" 500 45

Looks like the value for the server-side salt is blank in your config. Can you make sure app.secure_hash_salt in config/config.yaml has a string value?

I had a custom app.secure_hash_salt but you correctly diagnosed that something was wrong with it. When I returned to the out-of-the-box value everything worked. I changed it to a new (3rd) value and now it works. This issue is resolved.

Some additional error checking on that value might be helpful, as I can't visibly see anything wrong with the value I used. . .