【问题标题】:How to use passportjs to authenticate users in a meteor database without meteor?如何在没有流星的情况下使用passportjs对流星数据库中的用户进行身份验证?
【发布时间】:2017-03-09 22:38:49
【问题描述】:

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

【问题讨论】:

    标签: meteor


    【解决方案1】:

    是的。假设您有用户名和密码,您可以通过加密给定密码然后将其与用户存储的密码进行比较来使用 Accounts 包。这是在 Meteor 中使用 npm 包执行此操作的方法。

    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;
    }
    

    【讨论】:

    • 不使用任何meteor包或方法怎么办?
    • 找到执行 SHA256 和 bcrypt 的库(使用您用于外部 api 的任何语言或框架)并使用它们对密码进行编码,如我的示例所示。我在这里使用 npm 模块。如果您询问构建外部 API,您可以使用 api_key 和 api_secret 直接连接到 db 以获取用户信息。我们已经用 Elixir 语言构建了一个。
    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 2014-08-20
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2018-10-26
    相关资源
    最近更新 更多