1

account-entryWeb アプリのサインイン/サインアップ アクションを処理するためにMeteor のパッケージを使用しています。サインアップフォームにフィールドを追加するためにConfirm Password、これは私が行ったことです(CoffeeScriptで):

AccountsEntry.config
      logo: '/logo.png'
      homeRoute: 'main'
      dashboardRoute: 'main'
      profileRoute: '/profile'
      extraSignUpFields: [
        field: "confirmPassword"
        label: "Confirm Password"
        type: "password"
      ,
        field: "name"
        label: "Full Name"
        placeholder: "Full Name"
        type: "text"
        required: true
      ,
        field: "position"
        label: "Position"
        placeholder: "Developer"
        type: "text"
      ]

このアプローチの問題は、confirmPasswordフィールドをデータベースにも保存するため、誰かがデータベース > ユーザー コレクションにアクセスすると、フィールド内のすべてのユーザーのパスワードを明確に見ることができるということconfirmPasswordです。これは非常に悪いことです。

この問題を解決する方法はまだわかりません。特定のフィールドをデータベースに保存するかどうかを決定する属性があると思いますが、まだわかりません! (accounts-entryパッケージのドキュメントは私には十分に詳細ではないようです。私は言わなければなりません:( )

この問題を手伝ってくれませんか?よろしくお願いします!

4

1 に答える 1

1

パスワード確認フィールドがないことは、accounts-entry の既知の問題です。

一方、users コレクションの公開機能は、厳密に必要なフィールドのみを公開する必要があります。デフォルトではusernameemailsとのみprofileがクライアントに公開されます。

とにかく、最初からconfirmPasswordをデータベースに保存しないでください。そのためには、オブジェクトを返す前にそのフィールドにフックしAccounts.onCreateUserて削除します。user

Accounts.onCreateUser(function (options, user) {
  delete user.confirmPassword;  // or: delete user.profile.confirmPassword;
  return user;
});
于 2014-10-24T05:05:39.620 に答える