1

我正在开发一个管理两种登录的控制器:

  1. 电子邮件和密码
  2. 电子邮件

第二种类型只有电子邮件字段。原因是第三方提供商向我提供了已登录用户的电子邮件,但我还需要检查该电子邮件是否存在于我的数据库中。

所以我有两种类型的身份验证,问题是:

我可以将 Auth 用于第二种类型吗?(仅电子邮件检查)

谢谢

4

3 回答 3

1

我看不到在这里使用 Auth 的原因(您正在使用这种方法滥用整个 Auth 机制。处理简单的查找也只是一个巨大的开销)。只需使用 find(first) 检查电子邮件是否存在并相应地使用结果。这里的所有都是它的。

于 2012-07-30T14:15:00.293 回答
0

读这个

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')
            )
        )
    )
);
于 2012-07-30T14:20:43.127 回答
0

您可以在此链接中看到: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')
            )
        )
    )
);

这对我来说对你很好!

于 2012-07-30T13:59:28.443 回答