私は generator-angular-fullstack に基づいた小さなアプリを持っています。現在ログインしているユーザーに、新しいアカウント (Withings) の資格情報を追加したいと考えています。ログインしているユーザーは、Withings または Twitter または Facebook を使用してログインする他の方法を追加することもできます。
それらは私のルートです:
router
.get('/', passport.authorize('withings', {
failureRedirect: '/'
}))
.get('/callback', passport.authorize('withings', {
successRedirect : '/settings',
failureRedirect : '/'
}));
そして、これはコールバックの実装です:
passport.use(new WithingsStrategy({
consumerKey: config.withings.clientID,
consumerSecret: config.withings.clientSecret,
callbackURL: config.withings.callbackURL,
passReqToCallback: true
},
function(req, token, tokenSecret, profile, done) {
console.log('user' + req.user);
return done(null, null);
}
));
ポイントは、関数に戻ると、ログに記録された場合でもreq.user
常にundefined
.
誰にもアイデアはありますか?deserializeUser
andのような関数がいくつか必要だと読みましたserializeUser
が、それらは呼び出されません。
アイデア?私はこの種のことは初めてで、3〜4泊するとイライラします:(
PS: これは私の構成です
app.set('views', config.root + '/server/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(compression());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(cookieParser());
app.use(passport.initialize());
app.use(passport.session()); //persistent login session
// Persist sessions with mongoStore
// We need to enable sessions for passport twitter because its an oauth 1.0 strategy
app.use(session({
secret: config.secrets.session,
resave: true,
saveUninitialized: true,
store: new mongoStore({ mongoose_connection: mongoose.connection })
}));
if ('production' === env) {
app.use(favicon(path.join(config.root, 'public', 'favicon.ico')));
app.use(express.static(path.join(config.root, 'public')));
app.set('appPath', config.root + '/public');
app.use(morgan('dev'));
}
if ('development' === env || 'test' === env) {
app.use(require('connect-livereload')());
app.use(express.static(path.join(config.root, '.tmp')));
app.use(express.static(path.join(config.root, 'client')));
app.set('appPath', 'client');
app.use(morgan('dev'));
app.use(errorHandler()); // Error handler - has to be last
}