【问题标题】:Auth0 Custom MongoDB get user scriptAuth0 自定义 MongoDB 获取用户脚本
【发布时间】:2017-07-27 16:53:40
【问题描述】:

我有一个带有 auth0 的 angular 2 web 应用程序用于授权。我正在使用自己的 mongodb 数据库来存储用户信息。 Auth0 在沙箱中提供模板来实现这一点,例如登录脚本:

function login(email, password, callback) {
  mongo('mongodb://myusername:mypassword@mymongodbaddres: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 需要完成“获取用户”脚本(检查是否还没有使用相同电子邮件的用户)。但是“获取用户”脚本的模板如下:

function getByEmail (name, callback) {
  var profile = {
    user_id:     "103547991597142817347",
    nickname:    "johnfoo",
    email:       "johnfoo@gmail.com",
    name:        "John Foo",
    given_name:  "John",
    family_name: "Foo"
  };

  callback(null, profile);
}

谁能帮我实现一个有效的“获取用户”脚本?

【问题讨论】:

    标签: mongodb authentication auth0


    【解决方案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
              });
        });
      });
    }
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 2016-06-11
      • 2021-01-14
      • 2016-05-03
      • 2015-07-14
      • 1970-01-01
      • 2018-11-12
      • 2016-08-30
      • 1970-01-01
      相关资源
      最近更新 更多