2015-06-24 4 views
4

У меня установлено приложение MEAN.IO с использованием базового шаблона, и я пытаюсь добавить зависимости аутентификации паспорта Windows Live и Yahoo.Неизвестный паспорт стратегии аутентификации

У меня есть npm, устанавливаются обе зависимости и устанавливаются код (см. Ниже), как и другие паспортные схемы, такие как Facebook и Google (которые были предварительно установлены и работают).


passport.js:

YahooStrategy = require('passport-yahoo-oauth').Strategy, 
WindowsLiveStrategy = require('passport-windowslive').Strategy, 
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy, 

// Use windows live strategy 
    passport.use(new WindowsLiveStrategy({ 
     clientID: config.strategies.windowslive.clientID, 
     clientSecret: config.strategies.windowslive.clientSecret, 
     callbackURL: config.strategies.windowslive.callbackURL 
     }, 
     function(accessToken, refreshToken, profile, done) { 
     User.findOne({ 
      'windowslive.id': profile.id 
     }, function(err, user) { 
      if (user) { 
      return done(err, user); 
     } 
     user = new User({ 
      name: profile.displayName, 
      email: profile.emails[0].value, 
      username: profile.emails[0].value, 
      provider: 'windowslive', 
      windowslive: profile._json, 
      roles: ['authenticated'] 
     }); 
     user.save(function(err) { 
      if (err) { 
      console.log(err); 
      return done(null, false, {message: 'Windows Live login failed, email already used by other login strategy'}); 
      } else { 
      return done(err, user); 
      } 
     }); 
     }); 
    } 
)); 

маршруты пользователей (сервер/пользователи/routes.js)

// Setting the windows live oauth routes 
app.route('/api/auth/windowslive') 
    .get(passport.authenticate('windowslive', { 
    failureRedirect: '/login', 
    scope: ['wl.signin','wl.basic'] 
    }), users.signin); 

app.route('/api/auth/windowslive/callback') 
    .get(passport.authenticate('windowslive', { 
    failureRedirect: '/login' 
    }), users.authCallback); 

я получаю сообщение об ошибке: Унк стратегия проверки подлинности «windowslive» и ошибка: неизвестная стратегия аутентификации «yahoo», однако маршруты facebook и google работают нормально. Любая идея почему? Существуют ли какие-либо другие шаги, необходимые для настройки новых паспортных стратегий?

ответ

5

Попробуйте добавить это к вашему passport.use заявление:

passport.use('windowslive', new WindowsLiveStrategy({ 
... 
Смежные вопросы