Skip to content

AuthController — 鉴权控制器基类

  • 文件位置: kernel/Foundation/Controller/AuthController.php
  • 命名空间: kernel\Foundation\Controller
  • 继承自: Controller
  • 是否可继承: 是

带认证能力的控制器基类,继承 Controller$Admin / $Auth 属性启用认证,由中间件执行 Token 校验及 verifyAdmin/verifyAuth 分发。子类可覆盖 verifyAdmin()/verifyAuth() 添加额外校验。

属性

属性类型默认可见性说明
$Adminbool|int|string|arrayfalsepublic管理员认证状态:由中间件校验 Token 后的最终结果,true 表示已通过管理员认证;非 false 时控制器视作仅管理员可访问
$Authbool|int|string|arrayfalsepublic普通用户认证状态:中间件 Token 校验结果,true 表示已通过认证;非 false 时控制器视作需登录

方法速查表

方法作用
verifyAdmin()子类覆盖,添加管理员额外校验
verifyAuth()子类覆盖,添加普通用户额外校验

方法

verifyAdmin() — 管理员校验

默认返回成功 Result(null),子类可覆盖添加额外校验(如校验角色、权限等)。

参数

  • 无。

返回值

  • Result:校验结果。失败时返回 Result::failed(...),中间件将中止后续 data() 执行。

示例

php
protected function verifyAdmin(): Result
{
    if (!$this->Admin) {
        return Result::failed("未登录", 401);
    }
    if (!$this->isSuperAdmin($this->Admin)) {
        return Result::failed("无权限", 403);
    }
    return new Result(null);
}

verifyAuth() — 普通用户校验

默认返回成功 Result(null),子类可覆盖添加额外校验(如校验用户状态、Token 有效期等)。

参数

  • 无。

返回值

  • Result:校验结果。

示例

php
protected function verifyAuth(): Result
{
    if (!$this->Auth) {
        return Result::failed("未登录", 401);
    }
    if ($this->Auth["status"] !== "active") {
        return Result::failed("账号已停用", 403);
    }
    return new Result(null);
}

完整示例

php
use kernel\Foundation\Controller\AuthController;

class AdminController extends AuthController
{
    protected function data()
    {
        return $this->success("管理员面板");
    }
}