Yii CUserIdentityとユーザーモデル

oop php yii yii-components yii-inheritance
Yii CUserIdentityとユーザーモデル

Yiiプロジェクトには、特定のユーザーIDを参照する必要があるモデルが少なくとも1つあります。 このモデルのSQLには、「制約外部キー(user_id)参照ユーザー(id)」のようなものがあります。 CUserIdentityのドキュメントを見つけたときに、先に進んでユーザーモデルを作成しました。 私は混乱していることを認めなければなりません。 CUserIdentityは、特定のユーザーケースに関連付けられたユーザーまたは状態ですか? 私が理解しているセキュリティ関連の多くの問題を処理するため、可能な限り多くの組み込みのYii機能を使用したいと思います。また、ユーザー認証と登録管理。 正しい方向に導いてください。 (また、問題:モデルとコンポーネントの関係は何ですか?)

  2  1


ベストアンサー

まず、「ユーザー」モデルを作成してください。必要になります。

邪魔にならないように、「CUserIdentity」は「ユーザーが誰であるか」という概念を表し、「User」モデルは「私のアプリケーションのユーザーに関する情報」を表します。 `CUserIdentity`は、複数の種類のユーザーが存在するすべての場合に適用できます(つまり、 ゲスト)、「ユーザー」モデルは、ユーザーに関する情報を自分で保存する場合にのみ適用できます。 確かに、ほとんどの場合、_both_が適用され、これが混乱を引き起こします。

通常、2つの関係は、「ユーザーが誰であるか」、「ユーザーがこのリソースへのアクセスを許可されているかどうか」などの質問に答えるために、 `CUserIdentity`です。 これらの質問に答えるために必要な情報を取得するために、データベースから「ユーザー」モデルに問い合わせます。 この2つの概念間の関係は、Yiiの決定版ガイドのhttp://www.yiiframework.com/doc/guide/1.1/en/topics.auth#defining-identity-class[documented]にもあります。 後に ユーザーを認証すると、独自のプロパティ(定義する必要がある)を介して `User`モデルの情報の一部またはすべてを公開します。

「ユーザー」モデルが存在しないシナリオの例を挙げるには、LDAPユーザーアカウントを使用してログインできるWebサイトを考えてください。 `CUserIdentity

authenticate`メソッドが呼び出されると、コンポーネントはLDAPサーバーに対して認証情報を認証し、認証が成功すると他の関連情報を再度取得し、独自のプロパティで公開します。

6


タイトルとURLをコピーしました