2017-03-07 9 views
0

私は認可のためにauth0を持つ2つのWebアプリケーションを用意しています。私は自分のmongodbデータベースを使ってユーザー情報を保管しています。Auth0カスタムMongoDB getユーザスクリプト

function login(email, password, callback) { 
    mongo('mongodb://myusername:[email protected]:port/mydbname', function (db) { 
    var users = db.collection('users'); 
    users.findOne({ email: email }, function (err, user) { 

     if (err) return callback(err); 

     if (!user) return callback(new WrongUsernameOrPasswordError(email)); 

     bcrypt.compare(password, user.password, function (err, isValid) { 
     if (err) { 
      callback(err); 
     } else if (!isValid) { 
      callback(new WrongUsernameOrPasswordError(email)); 
     } else { 
      callback(null, { 
      user_id: user._id.toString(), 
      nickname: user.nickname, 
      email: user.email 
      }); 
     } 
     }); 
    }); 
    }); 
} 

さて問題は、作成スクリプトのAuth0がすでに存在しない場合は、「ユーザーの取得」スクリプトを(チェックを完了する必要があるということである:Auth0には、例えば、これを達成するためのサンドボックス内でログインスクリプトをテンプレートを提供します同じ電子メールを持つユーザー)。しかし、「ユーザーを取得」スクリプトのテンプレートは、次のとおりです。

function getByEmail (name, callback) { 
    var profile = { 
    user_id:  "103547991597142817347", 
    nickname: "johnfoo", 
    email:  "[email protected]", 
    name:  "John Foo", 
    given_name: "John", 
    family_name: "Foo" 
    }; 

    callback(null, profile); 
} 

「get user」スクリプトを作成するのに役立つ人は?

答えて

1

これは私が使用するコードです:

function getByEmail (email, callback) { 
    mongo(configuration.mongo_url, function (db) { 
    var users = db.collection('users'); 
    users.findOne({ email: email }, function (err, user) { 

     if (err) return callback(err); 
     if (!user) return callback(null, null); 
     callback(null, { 
      user_id: user._id.toString(), 
      nickname: user.nickname, 
      email: user.email, 
      email_verified: user.email_verified 
      }); 
    }); 
    }); 
} 

私はこのことができます願っています。

関連する問題