\Tests\FeatureAdminAuthMiddlewareTest

管理后台认证中间件回归

被测对象:AdminAuthMiddleware::handle 守护约定:① 无 token_id Cookie → 401「未登录」② 未知会话键 → 401 且清理 表内残留 ③ 有效会话 → 放行并把用户注入 auth('api') ④ 停用用户即使持有有效会话也 401(主链路状态校验)。

Summary

Methods
Properties
Constants
test_guest_request_gets_401()
test_guest_request_through_router()
test_unknown_session_key_gets_401_and_cleans_stale_db_key()
test_valid_session_authenticates_and_injects_user()
test_stopped_user_with_valid_session_is_rejected()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
setUp()
tearDown()
No protected properties found
N/A
makeUser()
openSession()
runRequest()
$md5Key
N/A

Properties

$md5Key

$md5Key : string

Type

string

Methods

test_guest_request_gets_401()

test_guest_request_gets_401() : void

无 token_id Cookie:401「未登录」

test_guest_request_through_router()

test_guest_request_through_router() : void

真实 admin 路由全链路:无凭证 401(不触达控制器)

test_unknown_session_key_gets_401_and_cleans_stale_db_key()

test_unknown_session_key_gets_401_and_cleans_stale_db_key() : void

未知会话键(Redis 无会话):401 并清理表内残留 token_key

test_valid_session_authenticates_and_injects_user()

test_valid_session_authenticates_and_injects_user() : void

有效会话:放行并把用户注入 auth('api')

test_stopped_user_with_valid_session_is_rejected()

test_stopped_user_with_valid_session_is_rejected() : void

停用用户即使持有有效会话也 401(主链路状态校验与 JwtCookieMiddleware 同规)

requireRedis()

requireRedis() : void

Redis 依赖探针:直连 Redis 的测试(限流/会话/验证码)在无 Redis 环境(如 CI) 跳过而非失败——其余用例不受影响。CI 可设 TEST_REQUIRE_REDIS=1 强制模式: Redis 不可达即失败而非跳过,安全回归套件不允许静默消失。

buildCacheRegistry()

buildCacheRegistry(array  $items) : void

建缓存注册表最小 schema(td_sys_cache)并灌入注册项。

测试跑 sqlite :memory:,生产迁移含 PostgreSQL 专属 DDL 跑不通(DataScopeServiceTest 同因自建 schema); 而 CacheManager::registry() 现已从数据库表读取——凡走注册表的测试(remember/get/key/失效推导) 必须在 setUp 先调用本方法,否则注册表为空、remember 未登记名会走「自动登记」路径。

Parameters

array $items

setUp()

setUp() : void

tearDown()

tearDown() : void

makeUser()

makeUser(array  $attrs = []) : \App\Models\SysUser

Parameters

array $attrs

Returns

\App\Models\SysUser —

openSession()

openSession(\App\Models\SysUser  $user) : string

建立会话:用户 token_key 指向 md5Key,Redis 存签名 JWT + age 标记(同 JwtCookieMiddlewareTest 模式)

Parameters

\App\Models\SysUser $user

Returns

string —

runRequest()

runRequest(array  $cookies = []) : \Illuminate\Http\Response|\Illuminate\Http\JsonResponse

Parameters

array $cookies

Returns

\Illuminate\Http\Response|\Illuminate\Http\JsonResponse —