Зарегистрируйтесь и войдите с дергаться одновременно

Мне удалось получить мой сайт, чтобы позволить пользователям регистрироваться и входить в систему с использованием twitch, используя метод аутентификации twints по паспорту. Тем не менее, я хотел бы получить его, чтобы пользователи могли зарегистрироваться, и он будет автоматически регистрировать их без необходимости повторного нажатия кнопки входа в систему. Кто-нибудь знает, как это сделать? Я могу предоставить код, если это необходимо.

var newAccount = false;

passport.use(new TwitchStrategy({
    clientID: "CLIENT ID",
    clientSecret: "CLIENT SECRET",
    callbackURL: "CALLBACK",
    scope: "user_read"
    },
    function(accessToken, refreshToken, profile, done) {
        //console.log(profile);
        newAccount = false;
        User.findOne({twitch_id: profile.id}, function(err, user){
            if(err){
                console.log(err);
            }  
            else if((user === undefined) || (user === null)){
                newAccount = true;
                var linkBefore = profile._json._links["self"];
                var linkAfter = linkBefore.substring(34,linkBefore.length);
                var newUser = new User({
                    twitch_id: profile.id,
                    twitch_link: ("https://twitch.tv" + linkAfter),
                    email: profile._json.email,
                    username: profile._json.display_name,
                    image: profile._json.logo
                });
                var password = Math.random().toString(36).slice(-8);
                User.register(newUser, password, function(err, user){
                    if(err){
                        console.log(err);
                    }
                    passport.authenticate("twitch");
                });
            }
            return done(err, user);
        });
    }
));
// TWITCH LOGIN ROUTES
router.get("/twitch", passport.authenticate("twitch"), function(req, res){
    console.log("New account: " + newAccount);
});
router.get("/twitch/callback", passport.authenticate("twitch", { 
    failureRedirect: "/" }), function(req, res) {
    // Successful authentication, redirect home.
    console.log("New account from the callback: " + newAccount);
    res.redirect("/");
});

1 ответ

Я работал над этим, возился с некоторыми вещами целую вечность, и это, казалось, решило проблему, в любом случае, спасибо.

Другие вопросы по тегам