如果用户是首次登录该应用,我正在尝试将其重定向到一个/onboard
页面。 Passport的回调函数允许我创建一个用户,但是重定向仅在创建用户并通过中间件传递后才发生。
我想做的是:
/onboarding
/
我的护照配置的一部分
const strategyCallback = async (accessToken, refreshToken, profile, cb) => {
const email = profile.emails[0].value;
try {
let user = await models.user.findOne({ where: { email } });
if (!user) {
user = await models.user.create({ email });
// From here, i'd like to redirect to /onboarding
}
// If the user exists, then just redirect to /
return cb(null, user);
} catch(e) {
return cb(e, false);
}
}
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_SECRET,
callbackURL: process.env.GOOGLE_CALLBACK
},
strategyCallback
));
我的路线呼叫:
app.get('/auth/google', controllers.googleAuth.authenticate);
app.get('/auth/google/callback', controllers.googleAuth.authenticateCallback);