authentication.js 875 B

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