当用户提交登录表单时,为了验证该用户而不是使用 cakephp 默认身份验证$this->Auth->login()
我想调用一些基于 java 的 api,我将在其中发送用户输入的用户 ID 和密码,如果用户是真实的,该 api 将返回用户详细信息,如果不是,则返回 false。我想将 cakephp AuthComponent 用于其余的事情(例如:会话等),但仅用于验证我想调用我的 api 的用户。这可能吗?我可以覆盖一些核心方法吗?
谢谢。
我认为这涵盖了它,在"创建自定义身份验证对象"下
http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html
文件夹路径中创建扩展BaseAuthenticate
Controllers/Component/Auth
类。在那里,您必须实现一个authenticate()
方法,如果成功记录,则必须返回一个包含用户数据的数组,如果没有,则返回 false。
然后,告诉组件在 AppController 中调用时Auth
组件使用自定义身份验证:
'Auth' => array(
'authenticate' => array(
'yourNewAuth' => array(
//other stuff
)
)
)
AuthComponent::$sessionKey 设置为 false,以确保 AuthComponent 不会尝试从会话中读取用户信息。
http://api.cakephp.org/2.4/class-AuthComponent.html