我正在尝试使用everyauth
insideexpress
向允许向图像添加文本评论的网站验证用户身份。我目前正在使用 twitter oauth api 来验证我的用户。
现在我正在尝试建立一个自定义用户数据库,它允许我保持多种登录方式连接到 CouchDB 中的单个条目。当我想在他最初通过 twitter 连接时将新用户添加到数据库时,我遇到了麻烦。我的代码findUserById
如下:
everyauth.everymodule.findUserById (userId, callback) ->
users.findById userId, (err,res) ->
if res.id
# id returned, so there is an entry in the DB
callback null, res
else
# no entry in the DB, add a new one
users.saveById JSON.stringify(userId), {"name":"test"}, (saveErr, saveRes) ->
callback null, saveRes
everyauth.twitter
.consumerKey(config.twitterConsumerKey)
.consumerSecret(config.twitterConsumerSecret)
.findOrCreateUser((session, token, secret, user) ->
promise = @.Promise().fulfill user
).redirectPath '/'
findById
并且是查询数据库的对象saveById
的方法,看起来是由everyauth提供的。cradle
userId
我的问题在于{"name":"test"}
部分。这是我想将数据从req.session.auth.twitter
对象添加到数据库的位置。如何从findUserById
函数内访问这些值?
这甚至可能吗?有不同的方法吗?我正在查看 findOrCreateUser 函数,但我不知道如何在不使我的应用程序崩溃的情况下更改它 - 我还没有掌握 Promise 的概念。