// 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
}
// ---------------------------------------------------------------------------
return OAuthClient.getByIdAndSecret(mongoId, clientSecret)
}
-function getRefreshToken (refreshToken, callback) {
+function getRefreshToken (refreshToken) {
logger.debug('Getting RefreshToken (refreshToken: ' + refreshToken + ').')
return OAuthToken.getByRefreshTokenAndPopulateClient(refreshToken)
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) {
- return OAuthToken.getByRefreshToken(token.refreshToken).then(function (tokenDB) {
+ return OAuthToken.getByRefreshTokenAndPopulateUser(token.refreshToken).then(function (tokenDB) {
if (tokenDB) tokenDB.remove()
/*
*/
const expiredToken = tokenDB
expiredToken.refreshTokenExpiresAt = new Date('2015-05-28T06:59:53.000Z')
+
return expiredToken
})
}