diff --git a/server/initializers/database.js b/server/initializers/database.js index 4a19bc230..8626895ee 100644 --- a/server/initializers/database.js +++ b/server/initializers/database.js @@ -23,6 +23,7 @@ const database = { } function connect () { + mongoose.Promise = global.Promise mongoose.connect('mongodb://' + host + ':' + port + '/' + dbname) mongoose.connection.on('error', function () { throw new Error('Mongodb connection error.') diff --git a/server/lib/oauth-model.js b/server/lib/oauth-model.js index 555a54e90..d9f8b175a 100644 --- a/server/lib/oauth-model.js +++ b/server/lib/oauth-model.js @@ -62,7 +62,7 @@ function revokeToken (token) { } function saveToken (token, client, user) { - logger.debug('Saving token for client ' + client.id + ' and user ' + user.id + '.') + logger.debug('Saving token ' + token.accessToken + ' for client ' + client.id + ' and user ' + user.id + '.') const tokenObj = new OAuthToken({ accessToken: token.accessToken, @@ -73,13 +73,12 @@ function saveToken (token, client, user) { user: user.id }) - return tokenObj.save(function (err, tokenCreated) { - if (err) throw err // node-oauth2-server library uses Promise.try - + return tokenObj.save().then(function (tokenCreated) { tokenCreated.client = client tokenCreated.user = user - return tokenCreated + }).catch(function (err) { + throw err }) } diff --git a/server/models/oauth-client.js b/server/models/oauth-client.js index 830f68857..45834c5a5 100644 --- a/server/models/oauth-client.js +++ b/server/models/oauth-client.js @@ -29,5 +29,5 @@ function loadFirstClient (callback) { } function getByIdAndSecret (id, clientSecret) { - return this.findOne({ _id: id, clientSecret: clientSecret }) + return this.findOne({ _id: id, clientSecret: clientSecret }).exec() } diff --git a/server/models/oauth-token.js b/server/models/oauth-token.js index 23c698732..f6a814c36 100644 --- a/server/models/oauth-token.js +++ b/server/models/oauth-token.js @@ -28,7 +28,7 @@ mongoose.model('OAuthToken', OAuthTokenSchema) // --------------------------------------------------------------------------- function getByRefreshTokenAndPopulateClient (refreshToken) { - return this.findOne({ refreshToken: refreshToken }).populate('client').then(function (token) { + return this.findOne({ refreshToken: refreshToken }).populate('client').exec().then(function (token) { if (!token) return token const tokenInfos = { @@ -47,9 +47,9 @@ function getByRefreshTokenAndPopulateClient (refreshToken) { } function getByTokenAndPopulateUser (bearerToken) { - return this.findOne({ accessToken: bearerToken }).populate('user') + return this.findOne({ accessToken: bearerToken }).populate('user').exec() } function getByRefreshToken (refreshToken) { - return this.findOne({ refreshToken: refreshToken }) + return this.findOne({ refreshToken: refreshToken }).exec() }