2017-03-09 11 views
0

私は流星アプリに別のAPIを書いて、モバイルアプリと他のサードパーティのシステムとの接続に使うことを計画しています。私は現在、反応したネイティブ流星のプラグインを使用して、流星のアプリケーションに直接接続します。しかし、流星からモバイルアプリを分離する必要があります。これを行うには、データベースに直接接続する別のAPIを作成します。ですから、私はMeteorで作成した古いユーザーアカウントにアクセスします。パスポートを通じて同じアカウントを使用してユーザーを認証できますか?流星のない流星データベースでpassportjsを使ってユーザーを認証する方法は?

答えて

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

どのように流星パッケージや方法を使用せずに行うのですか? – THpubs

+0

SHA256とbcrypt(外部API用に使用する言語やフレームワークを問わず)を行うライブラリを探し、私の例のようにパスワードをエンコードします。私はここでnpmモジュールを使用しています。外部APIの構築について質問している場合は、api_keyとapi_secretを使用してdbに直接接続して、ユーザーの情報を取得できます。私たちはElixir言語で作成しました。 – mutdmour

関連する問題