使用我自己的函数/ api验证用户?

时间:2014-02-13 11:09:43

标签: php cakephp authentication cakephp-2.0

当用户提交登录表单时,为了验证该用户而不是使用cakephp默认身份验证$this->Auth->login()我想调用一些基于java的api,我将发送用户输入的用户ID和密码,并且api将返回用户详细信息如果用户是真实的,如果不是,则为假。我想使用cakephp AuthComponent进行其余的事情(例如:会话等),但仅用于验证我想要调用我的api的用户。这可能吗 ?我可以覆盖一些核心方法吗?

感谢。

3 个答案:

答案 0 :(得分:1)

我认为这涵盖了“创建自定义身份验证对象”

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

答案 1 :(得分:0)

您可以在BaseAuthenticate文件夹路径中创建一个扩展Controllers/Component/Auth的类。在那里你必须实现一个authenticate()方法,如果成功记录,必须返回一个包含用户数据的数组,如果没有,则返回false。

然后,当您在AppController中调用它时,告诉Auth组件使用您的自定义身份验证:

'Auth' => array(
    'authenticate' => array(
        'yourNewAuth' => array(
            //other stuff
        )
    )
)

答案 2 :(得分:0)

您可以将 AuthComponent :: $ sessionKey 设置为false,以确保AuthComponent不会尝试从会话中读取用户信息。

http://api.cakephp.org/2.4/class-AuthComponent.html