我使用 cakePHP 2.0,并安装了 cakeDC Users 插件。用户插件似乎正在工作,就我可以登录并重定向到插件的 UsersController _setupAuth 函数中定义的“/”而言。
但是,当我想修改它时,我添加了一些来自 another stackoverflow question 的身份验证设置代码到我的 AppController beforeFilter 函数。
问题是,这似乎被忽略了,UsersController 中的 _setupAuth 代码优先。
所以,我的问题是,如何在我的 AppController 中添加自定义重定向控件,而无需更改插件中的代码?
我更困惑的是,我链接到的问题告诉我们在 AppController 中放置一个 isAuthorized 函数,这似乎意味着我必须删除 UsersAppController 中的函数。
最佳答案
这个想法是通过重写应用
中的类来扩展它。
您在 AppController
中配置应用特定的 Auth
设置是正确的。您还需要在项目中包含 Auth
组件。
然后在您的AppController::beforeFilter()
中您可以配置您的特定设置,例如
$this->Auth->loginRedirect = '/';
因此,您链接到的另一个问题是正确的,但您不需要所有设置,只需要您想要覆盖的设置。
如果您使用 Controller 身份验证,我还强烈建议向您的 AppController 添加 isAuthorized()
,因为您需要控制谁可以看到什么。 不要,正如另一个问题所说,只需返回 true,因为您没有检查任何不好的角色或登录。
如果您想更改登录操作,则需要在“应用程序/ Controller ”中创建自己的 Controller 并将其命名为 Users
以外的名称,我倾向于使用 MyUsersController.php
并在此 Controller 中,您需要扩展插件 Controller 。您需要使用 App::uses('Users.UsersController','Controller')
或类似文件包含该文件,然后您的 Controller 就可以
class MyUsersController extends UsersController{
public function login(){
}
}
虽然我不需要使用 Users 插件来执行此操作,所以也许只需尝试首先配置您的 AppController::beforeFilter()
,并检查您是否正在调用 parent::beforeFilter()
在顶部。
关于cakephp - CakeDC 用户插件 如何扩展它以能够自定义登录控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12998036/