有没有办法从Passport的回调函数重定向用户?

时间:2019-04-18 12:44:05

标签: http redirect passport.js

如果用户是首次登录该应用,我正在尝试将其重定向到一个/onboard页面。 Passport的回调函数允许我创建一个用户,但是重定向仅在创建用户并通过中间件传递后才发生。

我想做的是:

  1. 护照在数据库中查找特定的配置文件
  2. 如果找不到它,则创建它并重定向到/onboarding
  3. 如果找到它,则重定向到/

我的护照配置的一部分

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);

0 个答案:

没有答案
相关问题