如何防止护照插件永远循环进入?

时间:2019-12-30 10:03:16

标签: javascript node.js mongoose passport.js

使用护照插件处理注册。当用户注册时,它将永远循环。当我进行调试时,我暂停了执行,并且发现该指针位于async_hooks.js文件(它是核心节点模块)中的emmitHookFactory函数内。我恢复执行并可能暂停了几次,但指针恰好在那里。

调用堆栈显示了这个
embedDestroyNative(async_hooks.js:168)

由于处于永远循环中,因此输出仅是浏览器几秒钟后再次向同一脚本发送请求。

我已经进行了很多调试,但是没有找到解决方案。

如何解决此问题?

谢谢!

编辑:添加了代码

passport.authenticate('local-signup', function (err, user, info) {
                    let isJSON = false
                    if (req.body.json) isJSON = true
                    if (err) {
                        console.log("passport.authenticate err ==", err);
                        if (isJSON) return res.json({ status: false })
                        return res.redirect("back");
                    }
                    if (!user) {
                        if (isJSON) return res.json({ status: false })
                        return res.redirect("back");
                    }
                    req.logIn(user, function (err) {
                        if (err) {
                            console.log("req.logIn err ==", err);
                            if (isJSON) return res.json({ status: false })
                            req.flash(
                                "error",
                                "Something Went Wrong: Please try again later."
                            );
                            if (isJSON) return res.json({ status: false })
                            return res.redirect("back");
                        }
})

0 个答案:

没有答案