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