apollo-passport-local
Version:
Local strategy using email address and hashed, bcrypted password
82 lines (51 loc) • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Strategy = undefined;
var _bcrypt = require('bcrypt');
var _bcrypt2 = _interopRequireDefault(_bcrypt);
var _passportLocal = require('passport-local');
var _defaultOptions = require('./defaultOptions');
var _defaultOptions2 = _interopRequireDefault(_defaultOptions);
var _verify = require('./verify');
var _verify2 = _interopRequireDefault(_verify);
var _resolvers = require('./resolvers');
var _resolvers2 = _interopRequireDefault(_resolvers);
var _schema = require('./schema');
var _schema2 = _interopRequireDefault(_schema);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // Core node modules && npm packages
// Passport modules
// Local modules
var BCRYPT_SALT_ROUNDS = 10;
var extensionMethods = {
hashPassword: function hashPassword(password, cb) {
if (cb) return _bcrypt2.default.hash(password, BCRYPT_SALT_ROUNDS, cb);
return new Promise(function (resolve, reject) {
_bcrypt2.default.hash(password, BCRYPT_SALT_ROUNDS, function (err, res) {
return err ? reject(err) : resolve(res);
});
});
},
comparePassword: function comparePassword(password, hash, cb) {
if (cb) return _bcrypt2.default.compare(password, hash, cb);
return new Promise(function (resolve, reject) {
_bcrypt2.default.compare(password, hash, function (err, res) {
return err ? reject(err) : resolve(res);
});
});
}
};
var AugmentedLocalStrategy = function AugmentedLocalStrategy(apolloPassport, options) {
_classCallCheck(this, AugmentedLocalStrategy);
this.ap = apolloPassport;
if (!options) options = _defaultOptions2.default;
this.strategy = new _passportLocal.Strategy(options, _verify2.default.bind(this.ap));
this.resolvers = _resolvers2.default;
this.schema = _schema2.default;
this.ap.extendWith(extensionMethods);
};
AugmentedLocalStrategy.__isAugmented = true;
exports.Strategy = AugmentedLocalStrategy;
exports.default = AugmentedLocalStrategy;