私はnode.jsにかなり慣れていないので、everyAuthモジュールに問題があります。
私の問題は、ユーザーが github oauth を介してログインし、ユーザーがデータベースでホワイトリストに登録されているかどうかを確認できるアプリを作成しようとしていることです。ユーザーがホワイトリストに含まれていることを確認するまで、true を返す認証を停止したいと考えています。これを行うためにいくつかの方法を試しましたが、役に立ちませんでした。
誰でも光を当てることができますか?
github メソッドの呼び出し
everyauth.github
.appId(conf.github.appId)
.appSecret(conf.github.appSecret)
.redirectPath('/')
.findOrCreateUser (sess, accessToken, accessTokenExtra, ghUser) ->
promise = this.Promise()
users.findOrCreateByGhData ghUser, accessToken, accessTokenExtra, promise
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