我正在开发一个管理两种登录的控制器:
- 电子邮件和密码
- 电子邮件
第二种类型只有电子邮件字段。原因是第三方提供商向我提供了已登录用户的电子邮件,但我还需要检查该电子邮件是否存在于我的数据库中。
所以我有两种类型的身份验证,问题是:
我可以将 Auth 用于第二种类型吗?(仅电子邮件检查)
谢谢
我看不到在这里使用 Auth 的原因(您正在使用这种方法滥用整个 Auth 机制。处理简单的查找也只是一个巨大的开销)。只需使用 find(first) 检查电子邮件是否存在并相应地使用结果。这里的所有都是它的。
读这个
http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html
尝试这个:-
<?php
// Pass settings in $components array
public $components = array(
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
'plugin' => 'users'
),
'authError' => 'Did you really think you are allowed to see that?',
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
?>
或者
<?php
// Pass settings in $components array
public $components = array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
您可以在此链接中看到:http: //book.cakephp.org/2.0/en/core-libraries/components/authentication.html#configuring-authentication-handlers
<?php
// Pass settings in $components array
public $components = array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
这对我来说对你很好!