画像にテキストのコメントを追加できる Web サイトでユーザーを認証するeveryauth
ために使用しようとしています。express
現在、Twitter oauth API を使用してユーザーを認証しています。
現在、複数のログイン方法を CouchDB の 1 つのエントリに接続できるようにするカスタム ユーザー データベースを確立しようとしています。Twitter 経由で最初に接続するときに、新しいユーザーを DB に追加したいときに問題が発生します。次のように私の読み取りのコード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
DBにクエリを実行するオブジェクトsaveById
のメソッドであり、everyauth によって提供されているようです。cradle
userId
私の問題はその{"name":"test"}
部分にあります。req.session.auth.twitter
これは、オブジェクトから DB にデータを追加する場所です。関数内からこれらの値にアクセスするにはどうすればよいですか?findUserById
それは可能ですか?別のアプローチはありますか?私はfindOrCreateUser関数を見ていますが、アプリをクラッシュさせずにそれを変更する方法がわかりません.Promiseの概念をまだ理解していません.