首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js/ mysql passport-facebook身份验证

Node.js/ mysql passport-facebook身份验证
EN

Stack Overflow用户
提问于 2019-07-30 15:17:43
回答 2查看 253关注 0票数 0

我正在设置一个使用passport-facebook身份验证的登录页面,接受来自facebook的电子邮件地址。但当出现重复条目时,它将重定向到success page.Please help me

代码语言:javascript
复制
function(accessToken, refreshToken, profile, done) {
    process.nextTick(function() {
        if (fbconfig.use_database === true) {
            const qr = ("SELECT * from tbl_user where email ='" + profile.emails[0].value + "';");
            pool.query(qr, (err, rows) => {
                if (err) {
                    throw err;
                }
                if (rows && rows.length === 0) {
                    console.log(profile.emails[0].value);
                    console.log(profile.id);
                    console.log(profile.displayName);
                    var dt = dateTime.create();
                    var d = dt.format('Y-m-d H:M:S');
                    console.log("Creating profile");
                    let sql = ("INSERT into tbl_user(fb_id,token,name,email,cur_date) VALUES('" + profile.id + "','" + accessToken + "','" + profile.displayName + "','" + profile.emails[0].value + "','" + d + "');");
                    pool.query(sql, function(err, result) {
                        if (err) {
                            throw err;

                        }
                        console.log("fb inserted");


                    });



                } else {

                    console.log("Error Email already exist");

                }
            });

        }
        return done(null, profile);
    });
}));
router.get('/auth/facebook', passport.authenticate('facebook', { scope: 'email' }));
router.get('/auth/facebook/callback',
passport.authenticate('facebook', { successRedirect: '/sample', failureRedirect: '/', failureFlash: true }),
function(req, res) {
    pool.query(qr, (err, rows) => {
        if (err) {
            throw err;
        }
        if (rows && rows.length > 0) {
            res.render('/');
        }


    })


}
);

这是我的代码,我找不到解决方案

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-31 23:20:24

代码语言:javascript
复制
    function(accessToken, refreshToken, profile, done) {
process.nextTick(function() {
    if (fbconfig.use_database === true) {
        const qr = ("SELECT * from tbl_user where email ='" + profile.emails[0].value + "';");
        pool.query(qr, (err, rows) => {
            if (err) {
                throw err;
            }
            if (rows && rows.length === 0) {
                console.log(profile.emails[0].value);
                console.log(profile.id);
                console.log(profile.displayName);
                var dt = dateTime.create();
                var d = dt.format('Y-m-d H:M:S');
                console.log("Creating profile");
                let sql = ("INSERT into tbl_user(fb_id,token,name,email,cur_date) VALUES('" + profile.id + "','" + accessToken + "','" + profile.displayName + "','" + profile.emails[0].value + "','" + d + "');");
                pool.query(sql, function(err, result) {
                    if (err) {
                        throw err;

                    }
                    console.log("fb inserted");


                });
return done(null, true);

            } else {

                console.log("Error Email already exist");


return done(null, false);

            }
        });

    }

});
}));
router.get('/auth/facebook', passport.authenticate('facebook', { scope: 'email' }));
router.get('/auth/facebook/callback',
passport.authenticate('facebook', { successRedirect: '/sample', failureRedirect: '/', failureFlash: true }),
function(req, res) {
res.redirect('/sample')   
}

);
票数 0
EN

Stack Overflow用户

发布于 2019-07-30 22:21:11

每当发生错误时尝试完成(Err)。

例如,尝试

代码语言:javascript
复制
if (err) {
    throw err;
}

使用

代码语言:javascript
复制
if(err) {
    done(err);
}

希望能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57266232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档