$authService
$authService : \App\Services\Api\AuthService
系统认证控制器
职责:登录/登出/刷新、用户信息/菜单、注册与密码找回的 HTTP 入口, 校验入参、编排服务、组装统一响应,业务下沉 AuthService; 菜单树读取走 MaintainMenuService。会话凭证只经 HttpOnly Cookie 下发。
┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 会话认证 login / logout / refresh 分区 2 · 用户信息 userinfo / userMenus 分区 3 · 注册流程 sendRegisterCode / verifyRegisterCode / completeRegistration 分区 4 · 密码找回 forgotPassword / verifyResetToken / resetPassword 分区 5 · 内部辅助 tokenCookie └────────────────────────────────────────────────────────────┘
$authService : \App\Services\Api\AuthService
$menuService : \App\Services\Admin\MaintainMenuService
sendRegisterCode(\App\Http\Requests\Api\SendRegisterCodeRequest $request) : \Illuminate\Http\JsonResponse
发送邮件验证码
注册流程第一步。输入 username 与 email,经过点选验证码校验后, 向邮箱发送 6 位数字验证码。同一邮箱 60 秒内不可重复发送, 验证码 10 分钟内有效。
| \App\Http\Requests\Api\SendRegisterCodeRequest | $request |
verifyRegisterCode(\App\Http\Requests\Api\VerifyRegisterCodeRequest $request) : \Illuminate\Http\JsonResponse
校验注册验证码
注册流程第二步。输入邮箱中收到的 6 位数字验证码, 通过后进入设置密码步骤。错误 5 次作废,需重新获取。
| \App\Http\Requests\Api\VerifyRegisterCodeRequest | $request |
completeRegistration(\App\Http\Requests\Api\CompleteRegistrationRequest $request) : \Illuminate\Http\JsonResponse
完成注册
注册流程第三步,设置密码。邮箱验证通过后, 输入 username、email、验证码与新密码,创建用户。
| \App\Http\Requests\Api\CompleteRegistrationRequest | $request |
forgotPassword(\App\Http\Requests\Api\ForgotPasswordRequest $request) : \Illuminate\Http\JsonResponse
发送重置链接
忘记密码第一步。输入注册邮箱,经过点选验证码校验后, 向邮箱发送密码重置链接。同一邮箱 60 秒内不可重复发送, 链接 30 分钟内有效、单次使用;邮箱未注册时同样返回成功提示, 防止邮箱枚举。
| \App\Http\Requests\Api\ForgotPasswordRequest | $request |
tokenCookie(string $md5Key, int $ttlMinutes) : \Symfony\Component\HttpFoundation\Cookie
会话凭证 Cookie:Cookie 关注点自 AuthService 归位 Controller; 组装策略单源在 SessionHelper::tokenCookie——HttpOnly + SameSite 读 SESSION_SAME_SITE(默认 lax,跨注册域分离配 none),Secure 由 SESSION_SECURE_COOKIE 显式开关决定(与 APP_ENV 脱钩,生产 https 须置 true)。
| string | $md5Key | |
| int | $ttlMinutes |