如何使用passportjs在没有meteor的流星数据库中对用户进行身份验证?

时间:2017-03-09 13:02:08

标签: meteor

我打算为我的meteor应用程序编写一个单独的API,可用于连接移动应用程序和其他一些第三方系统。我目前使用react native meteor插件直接连接meteor应用程序。但我们需要将移动应用与流星分离。为此,我将创建一个直接连接到数据库的单独API。因此,我将可以访问由Meteor创建的旧用户帐户。我可以使用相同的帐户通过护照对用户进行身份验证吗?

1 个答案:

答案 0 :(得分:2)

是。假设您拥有用户名和密码,您可以通过加密给定的密码然后将其与用户的存储密码进行比较来使用Accounts包。以下是使用npm软件包在Meteor中如何做到这一点。

function authenticateUser(username, password){
    //encrypting password
    var bcrypt = Package['npm-bcrypt'].NpmModuleBcrypt;
    var SHA256 = Package.sha.SHA256;
    var hashedPass= SHA256(password);
    var bcryptHash = Meteor.wrapAsync(bcrypt.hash);
    hashedPass = bcryptHash(hashedPass, 10);
    //current password
    var user = Meteor.users.findOne({username:username})
    if (user) {
        var pass = user.services.password.bcrypt;
        return pass === hashedPass;
    }
    return false;
}