node.js - 如何拒绝用户使用 mongoose-auth/everyauth 登录

标签 node.js mongoose express everyauth

使用 node.js/expressjs/mongoose/mongoose-auth/everyauth。所有版本都是最新的。

我正在尝试使用数据库表在开发过程中通过电子邮件地址将用户列入白名单,但我希望主要的身份验证方法是 facebook。如果在 alpha_whitelist 中找到 facebook 电子邮件,我希望让 mongoose-auth 只创建帐户。这会按预期为表中的地址创建帐户,但如果用户不在白名单中,则会超时并导致服务器崩溃。

findOrCreateUser:   function (sess, accessTok, accessTokExtra, fbUser) {
    var promise = this.Promise(),
        User = this.User()();
        // TODO Check user in session or request helper first
        // e.g., req.user or sess.auth.userId
        User.findOne({'fb.id': fbUser.id}, function (err, foundUser) {
            if(foundUser)
                return promise.fulfill(foundUser);
            alpha_whitelist.findOne(
                {email: fbUser.email},
                function(err,doc) {
                    if(doc) {
                        console.log("CREATING");
                        User.createWithFB(fbUser, accessTok, accessTokExtra.expires, function (err, createdUser) {
                            console.log(err,createdUser);
                            if (err) return promise.fail(err);
                            return promise.fulfill(createdUser);
                        });
                    } else {
                        console.log('Denied');
                        //not sure what to do here... i need to break the auth chain and redirect the user back to '/'
                    }
                });
        });
        return promise;
    }

似乎无论我放在那里什么,它都会失败并导致服务器崩溃。我显然错过了一些东西。任何帮助将不胜感激。

最佳答案

我还没有测试过这个,但我确定你只需要像其他代码块一样返回 Promise

else {
    console.log('Denied');
    return promise.fail('Denied');
}

关于node.js - 如何拒绝用户使用 mongoose-auth/everyauth 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8337848/

相关文章:

node.js - 通过 SASS 支持使用 Typescript、SASS 和 CSS 模块搜索 React 组件库的 Webpack 配置

node.js - centos/amazon linux/rhel 的 authbind 等价物

javascript - 按下提交按钮后如何向 app.js 发送 POST 请求以显示 View 并渲染值?

node.js - 我想知道如何使用 Puppeteer 的 $$eval

node.js - GridDB Node.js 客户端将无法构建

javascript - Mongoose 批量保存 promise

javascript - 如何让 Mongoose 列出集合中的所有文档?判断集合是否为空?

node.js - 你可以为 mongoosejs 中的对象设置部分架构吗?

node.js - 使用express删除 Mongoose 条目

javascript - 如何使用 typicode/lowdb 文件数据库更新项目数组?