cakephp - CakeDC 用户插件 如何扩展它以能够自定义登录控制?

标签 cakephp authentication cakedc

我使用 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/

相关文章:

php - cakephp中的数据解码问题

cakephp - CakePHP 中的自定义助手错误

php - Cakephp:CakeDC 用户插件并保存另一个表

CakePHP - CakeDC 插件权限不起作用

mysql - cakephp 在查找中比较数据库字段

php - 我可以使用同一张表以不同方式/以更 Cake 的方式重构我的多个用户类型的设置吗?

java - 是否建议使用 ProgressDialog 进行登录?

javascript - 当错误消息显示用户名和密码不匹配时,您如何通过 Cognito 对用户池中的用户进行身份验证?

perl - Mojolicious、重定向、 session 并尝试创建身份验证系统