我已经使用基本模板设置了一个MEAN.IO应用程序,并试图添加Windows和雅虎护照身份验证依赖项。
我已经安装了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);
}
});
});
}
));用户路由(服务器/用户/ user .)
// 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路由运行良好。知道为什么吗?是否还需要其他步骤来配置新的护照策略?
发布于 2015-10-17 04:05:52
尝试将其添加到您的passport.use语句中:
passport.use('windowslive', new WindowsLiveStrategy({
...https://stackoverflow.com/questions/31030067
复制相似问题