跳至内容

扩展控制器

提供的控制器

Shield 具有以下控制器,可扩展这些控制器来处理身份验证过程的各个部分

  • ActionController 处理登录后和注册后的操作,如两因素身份验证和电子邮件验证。
  • LoginController 处理登录过程。
  • RegisterController 处理注册过程。覆盖此类可自定义用户提供程序、用户实体和验证规则。
  • MagicLinkController 处理“忘记密码”过程,允许用户使用发送到其电子邮件的链接登录。这允许你覆盖向用户显示的消息以描述正在发生的事情,如果你想提供更多信息,而不仅仅是替换所使用的视图。

如何扩展

不建议将整个控制器复制到 app/Controllers 并更改其命名空间。相反,你应该创建一个新的控制器来扩展现有控制器,然后仅覆盖所需的方法。这允许其他方法与控制器中可能发生的任何安全更新保持同步。

<?php

namespace App\Controllers;

use CodeIgniter\Shield\Controllers\LoginController as ShieldLogin;
use CodeIgniter\HTTP\RedirectResponse;

class LoginController extends ShieldLogin
{
    public function logoutAction(): RedirectResponse
    {
        // new functionality
    }
}

扩展后,别忘了更改路由。请参阅 自定义路由