// See https://github.com/oauthjs/node-oauth2-server/wiki/Model-specification for the model specifications
const OAuthModel = {
- getAccessToken: getAccessToken,
- getClient: getClient,
- getRefreshToken: getRefreshToken,
- getUser: getUser,
- revokeToken: revokeToken,
- saveToken: saveToken
+ getAccessToken,
+ getClient,
+ getRefreshToken,
+ getUser,
+ revokeToken,
+ saveToken
}
// ---------------------------------------------------------------------------
function getUser (username, password) {
logger.debug('Getting User (username: ' + username + ', password: ' + password + ').')
- return User.getByUsernameAndPassword(username, password)
+ return User.getByUsername(username).then(function (user) {
+ if (!user) return null
+
+ // We need to return a promise
+ return new Promise(function (resolve, reject) {
+ return user.isPasswordMatch(password, function (err, isPasswordMatch) {
+ if (err) return reject(err)
+
+ if (isPasswordMatch === true) {
+ return resolve(user)
+ }
+
+ return resolve(null)
+ })
+ })
+ })
}
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,
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
})
}