サーチ…


流星勘定パッケージ

Meteorを使用してログインするには、いくつかの選択肢があります。最も一般的な方法は、メテオのaccountsを使用accountsです。

アカウント - パスワード

ユーザーがサイトで作成して登録できるようにするには、 accounts-password使用できaccounts-password

meteor add accounts-passwordを使用してパッケージをインストールしmeteor add accounts-password

ユーザーを作成するには、 Accounts.createUser(options, [callback])を使用する必要がありAccounts.createUser(options, [callback])

optionsは次のプロパティを持つオブジェクトでなければなりません:

  • username :文字列としてのユーザーのユーザー名。
  • email :文字列としてのユーザーの電子メール。
  • password :文字列としてのユーザーの(暗号化されていない)パスワード。
  • profile :オブジェクトとしてのユーザーのオプションの追加データ。これは、例えば、ユーザの姓名であってもよい。 profileはオプションですが、

Meteor.Errorオブジェクトであるエラーがある場合、コールバックは1変数を返します。

usernameまたはemailどちらかを使用する必要がありemail 。そのため、ユーザー名は電子メールなしで作成できます。逆も同様です。両方を使用することもできます。

すべてが正しく行われた場合は、新しく作成されたユーザーIDを返します。

例えば、これを使うことができます:

// server side
var id = Accounts.createUser({
    username: "JohnDoe",
    email: "[email protected]",
    password: "TheRealJohn123",
    profile: {
        firstName: "John",
        lastName: "Doe"
    }
}, function(err) {
    console.log(err.reason);
});

ユーザーが正常に作成された場合は自動的にログインします。

それが創造的な部分です。ログインするには、 Meteor.loginWithPassword(identifier, password, [callback])をクライアント側で使用する必要があります。

identifierありusernameemailまたはuserIdユーザーから文字列として。 passwordは、ユーザーの(暗号化されていない) password

Meteor.Errorオブジェクトであるエラーがある場合、コールバックは1つの変数を返します。

例:

// client side
Meteor.loginWithPassword("JohnDoe", "TheRealJohn123", function(err) {
    console.log(err.reason);
});

それがアカウントの基本作成とログインのためのものです。

ユーザーデータへのアクセス

ユーザがログインしている場合は、 Meteor.userId()を呼び出すことでログインすることができますMeteor.userId()は、ログインしている場合はuserIdを返し、ログインしていundefined場合はundefinedを返します。

Meteor.user()から情報の一部を取得できます。ユーザーがログインしていない場合はundefinedを返し、ログインしている場合はユーザーデータを返します。デフォルトではパスワードは与えられません。デフォルトでは、ユーザーのユーザーID、ユーザー名、およびプロファイルオブジェクトが表示されます。

ユーザーがページにログインしているかどうかを確認するには、 currentUserヘルパーを使用することもできます。 Meteor.user()内容をMeteor.user()ます。例:

{{#if currentUser}}
    <h1>Hello there, {{currentUser.username}}!</h1>
{{else}}
    <h1>Please log in.</h1>
{{/if}}

他のアカウント関数

アカウントパッケージごとに機能する他の関数がいくつかあります。

Meteor.logout()を使用してMeteor.logout()できます。

デフォルトのプロファイルフィールドを使用しない

profileと呼ばれる魅力的な既存のフィールドがあり、新しいユーザーが登録するときにデフォルトで追加されます。このフィールドは、歴史的には、ユーザー固有のデータのスクラッチパッドとして使用されていました。イメージアバター、名前、イントロテキストなどです。このため、 すべてのユーザーのprofileフィールドは、そのユーザーによってクライアントから自動的に書き込めます 。また、特定のユーザーのクライアントにも自動的に公開されます。

そのスーパーを明白にすることなく、デフォルトで書き込み可能なフィールドを持つことは、最良のアイデアではないかもしれません。 profile上にisAdminなどのフィールドを格納する新しいMeteor開発者の話はたくさんありprofile 。悪意のあるユーザーは、いつでも自分を管理者にするために、いつでもtrueに設定することができます。これについて心配していなくても、悪意のあるユーザーに任意の量のデータをデータベースに格納させることはお勧めできません。

この分野の特質を扱うのではなく、その存在を完全に無視することは有益です。クライアントからのすべての書き込みを拒否する限り、安全に行うことができます。

// Deny all client-side updates to user documents
Meteor.users.deny({
  update() { return true; }
});

プロファイルのセキュリティへの影響を無視しても、すべてのアプリのカスタムデータを1つのフィールドに入れることはお勧めできません。 Meteorのデータ転送プロトコルでは、フィールドのネストされたdiffingは深刻ではありません。したがって、オブジェクトをドキュメントの多くのトップレベルフィールドにフラット化することをお勧めします。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow