Зарегистрируйтесь и войдите с дергаться одновременно
Мне удалось получить мой сайт, чтобы позволить пользователям регистрироваться и входить в систему с использованием 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 ответ
Я работал над этим, возился с некоторыми вещами целую вечность, и это, казалось, решило проблему, в любом случае, спасибо.