2016-07-06 6 views
1

私は解析から流星にアプリを移行しています。解析すると、ユーザーのパスワードはbcrypt(パスワード)として保管され、流星はbcrypt(sha256(パスワード))として保管されます。古いユーザーがシームレスにログインできるように、古いbcryptリストを流星に接続するにはどうすればいいですか?流星の非シャープbcryptsに対するパスワードを確認する

+1

[accounts-password](https://github.com/meteor/meteor/blob/devel/packages/accounts-password/password_server.js#L246)でパスワードを定義する方法について、次の点をお勧めします。ログイン方法、あなた自身を定義します。メソッド 'registerLoginHandler'の[signature](https://github.com/meteor/meteor/blob/devel/packages/accounts_server.js#L423) – camelCaseD

+0

暗号化方法を指定できますか? –

+0

そして、私はそれをどうやってやっていくのかについてもっと詳しく説明しますか? –

答えて

2

accounts-passwordがパスワードログイン方法を定義する方法を次のように見て、あなた自身を定義することをおすすめします。 registerLoginHandlerの方法signatureサーバーで


(これをお勧めしますが、サーバーの起動時に行われます):

import { Meteor } from 'meteor/meteor'; 

Meteor.loginWithParsePassword({ user: /* TODO Define the query for finding your user */, password: passwordInput }, function() { console.log(arguments); }); 

メイク:

import bcrypt from 'bcrypt'; 

import { Accounts } from 'meteor/accounts-base'; 
import { Meteor } from 'meteor/meteor'; 

Accounts.registerLoginHandler('parsePassword', function (options) { 
    // Validate options 
    /* TODO Fill in yourself */ 

    // Find the user to login 
    /* TODO Fill in yourself */ 

    const result = { 
    userId: user._id, 
    }; 

    // Prepare the bcrypt method 
    const bcryptCompare = Meteor.wrapAsync(bcrypt.compare); 

    if (! bcryptCompare(options.password, hashedPassword)) { 
    result.error = new Meteor.Error(403, 'Incorrect password'); 
    } 

    return result; 
}); 

は、その後、あなたがクライアントにそうように、このログインメソッドを使用しますbcryptモジュールをパッケージに入れてください.json


Askerがパースからどのようにユーザーをインポートしたか、そのインポートされたデータのdb構造がどのようなものか分かりません。だから私は、尋問者が行うための練習としてコードのその部分を残します。

関連する問題