Yii CUserIdentity与用户模型

tac*_*cos 2 php oop yii yii-components yii-inheritance

我的Yii项目中至少有一个模型需要引用特定的用户ID.在我的模型SQL中,我有类似的东西CONSTRAINT FOREIGN KEY (user_id) REFERENCES User(id).当我遇到CUserIdentity的文档时,我将继续创建一个User模型.我不得不承认我很困惑.CUserIdentity是用户还是与特定用户案例相关联的州?我想尽可能多地使用内置的Yii功能,因为它们根据我的理解处理了许多与安全相关的问题,并且我知道存在一些模块,比如srbac处理用户身份验证和注册管理.请指导我正确的方向.(还有问题:模型和组件之间的关系是什么?)

Jon*_*Jon 6

首先,请继续创建User模型,您将需要它.

除此之外:CUserIdentity代表"用户是谁"的概念,而User模型代表"关于我的应用程序的用户的信息".CUserIdentity适用于有多种用户(即访客)的所有情况,而该User模型仅适用于您自己存储用户信息的情况.不可否认,在大多数情况下,两者都适用,这就是造成混乱的原因.

通常,两者之间的关系是CUserIdentity,为了回答诸如"用户是谁","是允许用户访问该资源的用户"等问题,等等User从数据库中查询模型以获得它需要回答的信息.这些问题.这两个概念之间的关系也记录在Yii的权威指南中.在例如对用户进行身份验证之后,它将User通过其自己的属性(您必须定义)暴露模型上的部分或全部信息.

举一个没有User模型的场景示例,考虑一个允许您使用LDAP用户帐户登录的网站.CUserIdentity::authenticate调用该方法时,组件将针对LDAP服务器验证凭据,并且在成功验证之后将再次获取任何其他相关信息并通过其自己的属性公开它.