gpt4 book ai didi

mongodb - everyauth:根据数据库检查 github 身份验证

转载 作者:可可西里 更新时间:2023-11-01 09:15:56 26 4
gpt4 key购买 nike

我是 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

最佳答案

一开始我在 everyauth 遇到了一些问题,所以我切换到 Passport .有一个模块 GitHub authentication以及。在我看来,它使用起来要简单得多。 Passport 提供用户配置文件,您可以将其存储在数据库中并在成功验证后获取。

关于mongodb - everyauth:根据数据库检查 github 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8129918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com