Example #1
0
    UserModel.findById(token.userId, function (err, user) {
      if (err) {
        return done(err);
      }
      if (!user) {
        return done(null, false);
      }

      RefreshTokenModel.remove({ userId: user.userId, clientId: client.clientId }, function (err) {
        if (err) return done(err);
      });
      AccessTokenModel.remove({ userId: user.userId, clientId: client.clientId }, function (err) {
        if (err) return done(err);
      });

      var tokenValue = crypto.randomBytes(32).toString('base64');
      var refreshTokenValue = crypto.randomBytes(32).toString('base64');
      var token = new AccessTokenModel({ token: tokenValue, clientId: client.clientId, userId: user.userId });
      var refreshToken = new RefreshTokenModel({ token: refreshTokenValue, clientId: client.clientId, userId: user.userId });
      refreshToken.save(function (err) {
        if (err) {
          return done(err);
        }
      });
      var info = { scope: '*' }
      token.save(function (err, token) {
        if (err) {
          return done(err);
        }
        log.debug('token.save DONE token = ' + tokenValue + ', refreshTokenValue = ' + refreshTokenValue);
        done(null, tokenValue, refreshTokenValue, { 'expires_in': config.get('security:tokenLife') });
      });
    });
Example #2
0
  UserModel.findOne({ userNick: username }, function (err, user) {
    if (err) {
      log.debug('UserModel.findOne ERROR = ' + err);
      return done(err);
    }
    if (!user) {
      log.debug('UserModel.findOne user = null');
      return done(null, false);
    }
    if (!user.checkPassword(password)) {
      log.debug('UserModel.findOne password incorrect');
      return done(null, false);
    }

    RefreshTokenModel.remove({ userId: user.userId, clientId: client.clientId }, function (err) {
      if (err) {
        log.debug('RefreshTokenModel.remove ERROR = ' + err);
        return done(err);
      }
    });
    AccessTokenModel.remove({ userId: user.userId, clientId: client.clientId }, function (err) {
      if (err) {
        log.debug('AccessTokenModel.remove ERROR = ' + err);
        return done(err);
      }
    });

    var tokenValue = crypto.randomBytes(32).toString('base64');
    var refreshTokenValue = crypto.randomBytes(32).toString('base64');
    var token = new AccessTokenModel({ token: tokenValue, clientId: client.clientId, userId: user.userId });
    var refreshToken = new RefreshTokenModel({ token: refreshTokenValue, clientId: client.clientId, userId: user.userId });
    refreshToken.save(function (err) {
      if (err) {
        log.debug('refreshToken.save ERROR = ' + err);
        return done(err);
      }
    });
    token.save(function (err, token) {
      if (err) {
        log.debug('token.save ERROR = ' + err);
        return done(err);
      }
      log.debug('token.save DONE token = ' + tokenValue + ', refreshTokenValue = ' + refreshTokenValue);
      done(null, tokenValue, refreshTokenValue, { 'expires_in': config.get('security:tokenLife') });
    });
  });