Passport Amazon oAuth2 の Redis DB モデルの作成に問題があります。「redis-connect」モジュールを使用しており、Redis ローカル サーバーを実行しています。私の redis サーバーはセッション データを正常に保存するので、モジュールとサーバーは正常に動作しています。User 変数についてのみサポートが必要です。これが私のコードです:
//create a user model
var User = new RedisStore({ host:'127.0.0.1', port:6379, prefix:'token' });
passport.serializeUser(function(user, done) {
console.log('serializeUser: ' + user._id);
done(null, user._id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user){
console.log(user);
if(!err){ done(null, user);}
else {done(err, null);}
});
});
passport.use(new AmazonStrategy({
clientID: "foo",
clientSecret: "SECRET",
callbackURL: "https://localhost/auth/amazon/callback"
},
function(accessToken, refreshToken, profile, done) {
User.findOne({ oauthID: profile.id }, function(err, user) {
if(err) { console.log(err); }
if (!err && user !== null) {
done(null, user);
} else {
var user = new User({
oauthID: profile.id,
name: profile.displayName,
created: Date.now()
});
user.save(function(err) {
if(err) {
console.log(err);
} else {
console.log("saving user ...");
done(null, user);
}
});
}
});
}
));
また、findById 関数は定義されていません。方法がわかりません... redis-connect モジュールの一部だと思いました。誰か助けてくれませんか?