Mongo使用护照身份验证创建用户错误
Posted
技术标签:
【中文标题】Mongo使用护照身份验证创建用户错误【英文标题】:Mongo create user error using passport authentication 【发布时间】:2015-09-13 18:17:57 【问题描述】:我正在使用 MEAN.IO 堆栈(Mongoose 的默认模板)和 Passport.js 身份验证来创建新用户。每当在下面的代码中调用 user.save(...) 时:
// Use Facebook strategy
passport.use(new FacebookStrategy(
clientID: config.strategies.facebook.clientID,
clientSecret: config.strategies.facebook.clientSecret,
callbackURL: config.strategies.facebook.callbackURL
,
function(accessToken, refreshToken, profile, done)
User.findOne(
'facebook.id': profile.id
, function(err, user)
if (user)
return done(err, user);
user = new User(
name: profile.displayName,
email: profile.emails[0].value,
provider: 'facebook',
facebook: profile._json,
roles: ['authenticated']
);
user.save(function(err)
if (err)
console.log(err);
return done(null, false, message: 'facebook login failed, email already used by other login strategy');
else
return done(err, user);
);
);
));
控制台记录以下错误:
MongoError: attempt to use unsupported textIndexVersion 2, only textIndexVersion 1 supported
我在网上查看了 MEAN.IO 堆栈代码,但找不到任何有关如何更改 textIndexVersion 的信息。
任何想法如何更改版本或修复此错误?
【问题讨论】:
【参考方案1】:根据 Mongo 的错误报告:
mongod v2.4.9 将正确禁止更改具有 与 2.4 不兼容的文本索引。尝试插入、更新、 或删除这些集合中的文档将返回错误消息 “尝试使用不受支持的 textIndexVersion 2,仅 textIndexVersion 1 个支持”。
https://jira.mongodb.org/browse/SERVER-11494
我建议更新您的 Mongo 版本以与 v2.4.9 兼容
【讨论】:
当前的mongo版本是2.4.9以上是关于Mongo使用护照身份验证创建用户错误的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 护照出现 401 Unauthenticated 错误
我可以使用 html5 本地存储来存储用户身份验证会话信息吗
身份验证用户提供程序 [passport] 未使用 laravel 护照定义