Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Everyauth:针对数据库检查github身份验证_Mongodb_Node.js_Express_Mongoose_Everyauth - Fatal编程技术网

Mongodb Everyauth:针对数据库检查github身份验证

Mongodb Everyauth:针对数据库检查github身份验证,mongodb,node.js,express,mongoose,everyauth,Mongodb,Node.js,Express,Mongoose,Everyauth,我是node.js的新手,我对everyAuth模块有问题 我的问题是,我正在尝试创建一个应用程序,允许用户通过github oauth登录,并检查用户是否在数据库中被列入白名单。在检查用户是否在白名单中之前,我想停止返回true的身份验证。我试过几种方法来做这件事,但都没有用 有人能解释一下吗 调用github方法 用户类 一开始我和每个人都有一些问题,所以我换了。也有一个模块。在我看来,它的使用要简单得多。Passport提供了一个用户配置文件,您可以将其存储在数据库中,并在成功验证后获取。

我是node.js的新手,我对everyAuth模块有问题

我的问题是,我正在尝试创建一个应用程序,允许用户通过github oauth登录,并检查用户是否在数据库中被列入白名单。在检查用户是否在白名单中之前,我想停止返回true的身份验证。我试过几种方法来做这件事,但都没有用

有人能解释一下吗

调用github方法 用户类
一开始我和每个人都有一些问题,所以我换了。也有一个模块。在我看来,它的使用要简单得多。Passport提供了一个用户配置文件,您可以将其存储在数据库中,并在成功验证后获取。

承诺。失败是您锁定的原因吗

function (session, accessToken, extra, user) {
  var promise = this.Promise();
  doSomethingAsync(function (err, user) {
    if (user.whitelisted) promise.fulfill(user);
    else promise.fail('denied');
  });
  return promise;
}
“用户在白名单中”是什么意思?
conf =      require '../config'
# Mongoose
mongoose =  require 'mongoose'
Schema =    mongoose.Schema
ObjectId =  Schema.ObjectId

# Connect
mongoose.connect('mongodb://' + conf.db.user + ':' + conf.db.password + '@' +  conf.db.url )

# User Schema
NewUser = new Schema 
    id :
        type: Number
        min: 18
        index: true
    login  :
        type: String
    ghId :
        type: Number
        unique: true
    date :
        type: Date
        default: Date.now

# Create Model
User = mongoose.model 'NewUser', NewUser

exports.findOrCreateByGhData = ( ghData , accessToken, accessTokenExtra, promise ) ->
    User.find  'ghId': ghData.id , (err, docs) ->
        if docs.length
            console.log '=========User==============='
            console.log docs
            return promise.fulfill ['Nah its an error']
        else
            console.log '=========No user============='
            user = new User()
            user.login = ghData.login
            user.ghId = ghData.id
            user.save ( err ) ->
                if err
                    throw err
                console.log 'saved'
            promise.fulfill user
function (session, accessToken, extra, user) {
  var promise = this.Promise();
  doSomethingAsync(function (err, user) {
    if (user.whitelisted) promise.fulfill(user);
    else promise.fail('denied');
  });
  return promise;
}