繁体   English   中英

CakePHP身份验证-不同表中的用户名和密码

[英]CakePHP Authentication - Username and Password in different tables

我有以下表格:

People
Users
Emails

用户的密码存储在“ Users表中,我希望他们使用存储在“ Emails表中的默认电子邮件地址进行身份验证。 Emails表中的布尔值列将电子邮件指示为默认Emails

如何在此设置中使用CakePHP的身份验证组件?

我认为您不应将信息拆分到单独的表格中。 将所有内容放在“用户”表中,然后建立一对一关系。

无论如何,如果要这样做,则应该重写UsersController中的login()方法。

这里有一个示例: http : //bakery.cakephp.org/articles/SeanCallan/2007/04/17/simple-form-authentication-in-1-2-xx

这是您需要重写的方法:

http://api13.cakephp.org/class/auth-component#method-AuthComponentlogin

编辑:

使您的身份验证数据仅取决于用户。 我的意思是,在其中输入电子邮件,用户名(如果有的话)和密码。 之后,例如,如果您有People表来记录其他信息(名字,地址,电话等),请与该表建立一对一的关系。 如果您有客户表,并且客户可以是用户,则建立一对一关系。

不久前,我遇到了这种麻烦,就像Django一样,对解决它很有用,并且是这种一对一的解决方案。

此答案应该有足够的证据表明您将无法对Auth组件使用多个模型。 它仅支持字符串,不支持数组。 但是,如果您继续阅读,可能会有适合您的解决方法。

创建一个/app/Controller/Component/Auth/MyFormAuthenticate.php文件,并将Auth设置为使用MyForm而不是Form进行身份验证。

在此文件中包括authenticate函数和_findUser函数。

然后,您需要覆盖_findUser函数以适合您的需求。

感谢CakePHP freenode频道上的Ceeram提供此解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM