local.js 961 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* global WIKI */
  2. // ------------------------------------
  3. // Local Account
  4. // ------------------------------------
  5. const LocalStrategy = require('passport-local').Strategy
  6. module.exports = {
  7. key: 'local',
  8. title: 'Local',
  9. useForm: true,
  10. props: [],
  11. init (passport, conf) {
  12. passport.use('local',
  13. new LocalStrategy({
  14. usernameField: 'email',
  15. passwordField: 'password'
  16. }, (uEmail, uPassword, done) => {
  17. WIKI.db.users.query().findOne({
  18. email: uEmail,
  19. provider: 'local'
  20. }).then((user) => {
  21. if (user) {
  22. return user.verifyPassword(uPassword).then(() => {
  23. return done(null, user) || true
  24. }).catch((err) => {
  25. return done(err, null)
  26. })
  27. } else {
  28. return done(new WIKI.Error.AuthLoginFailed(), null)
  29. }
  30. }).catch((err) => {
  31. done(err, null)
  32. })
  33. }
  34. ))
  35. }
  36. }