扩展控制器
提供的控制器
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
}
}
扩展后,别忘了更改路由。请参阅 自定义路由。