\App\Http\Controllers\ApiAuthController

系统认证控制器

职责:登录/登出/刷新、用户信息/菜单、注册与密码找回的 HTTP 入口, 校验入参、编排服务、组装统一响应,业务下沉 AuthService; 菜单树读取走 MaintainMenuService。会话凭证只经 HttpOnly Cookie 下发。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 会话认证 login / logout / refresh 分区 2 · 用户信息 userinfo / userMenus 分区 3 · 注册流程 sendRegisterCode / verifyRegisterCode / completeRegistration 分区 4 · 密码找回 forgotPassword / verifyResetToken / resetPassword 分区 5 · 内部辅助 tokenCookie └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
__construct()
login()
logout()
refresh()
userinfo()
userMenus()
sendRegisterCode()
verifyRegisterCode()
completeRegistration()
forgotPassword()
verifyResetToken()
resetPassword()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
tokenCookie()
$authService
$menuService
N/A

Properties

$authService

$authService : \App\Services\Api\AuthService

Type

AuthService

Methods

__construct()

__construct(\App\Services\Api\AuthService  $authService, \App\Services\Admin\MaintainMenuService  $menuService) : mixed

Parameters

\App\Services\Api\AuthService $authService
\App\Services\Admin\MaintainMenuService $menuService

Returns

mixed —

login()

login(\App\Http\Requests\Api\LoginRequest  $request) : \Illuminate\Http\JsonResponse

登录

验证用户名和密码与点选验证码,签发 JWT 并返回 MD5 代理钥匙。 勾选记住我时 token 有效期 7 天,否则 8 小时后自动过期; 会话凭证只经 HttpOnly Cookie 下发,响应体只返回过期时间。

Parameters

\App\Http\Requests\Api\LoginRequest $request

Returns

\Illuminate\Http\JsonResponse —

logout()

logout() : \Illuminate\Http\JsonResponse

登出

清除当前会话并删除 token_id Cookie,后续请求返回 401。

Returns

\Illuminate\Http\JsonResponse —

refresh()

refresh() : \Illuminate\Http\JsonResponse

刷新令牌

校验当前会话仍有效后签发新 JWT 与新的 MD5 代理钥匙, 有效期与登录同规。会话凭证只经 HttpOnly Cookie 下发。

Returns

\Illuminate\Http\JsonResponse —

userinfo()

userinfo() : \Illuminate\Http\JsonResponse

用户信息

返回当前登录用户的完整档案、直授角色列表与全部权限码集合, 登录后前端初始化与权限按钮显隐的数据源。敏感字段由模型 hidden 统一隐藏。

Returns

\Illuminate\Http\JsonResponse —

userMenus()

userMenus() : \Illuminate\Http\JsonResponse

我的菜单

根据当前用户角色返回有权访问的菜单树。超管返回全部。 布局层侧边栏/动态路由的数据源。

Returns

\Illuminate\Http\JsonResponse —

sendRegisterCode()

sendRegisterCode(\App\Http\Requests\Api\SendRegisterCodeRequest  $request) : \Illuminate\Http\JsonResponse

发送邮件验证码

注册流程第一步。输入 username 与 email,经过点选验证码校验后, 向邮箱发送 6 位数字验证码。同一邮箱 60 秒内不可重复发送, 验证码 10 分钟内有效。

Parameters

\App\Http\Requests\Api\SendRegisterCodeRequest $request

Returns

\Illuminate\Http\JsonResponse —

verifyRegisterCode()

verifyRegisterCode(\App\Http\Requests\Api\VerifyRegisterCodeRequest  $request) : \Illuminate\Http\JsonResponse

校验注册验证码

注册流程第二步。输入邮箱中收到的 6 位数字验证码, 通过后进入设置密码步骤。错误 5 次作废,需重新获取。

Parameters

\App\Http\Requests\Api\VerifyRegisterCodeRequest $request

Returns

\Illuminate\Http\JsonResponse —

completeRegistration()

completeRegistration(\App\Http\Requests\Api\CompleteRegistrationRequest  $request) : \Illuminate\Http\JsonResponse

完成注册

注册流程第三步,设置密码。邮箱验证通过后, 输入 username、email、验证码与新密码,创建用户。

Parameters

\App\Http\Requests\Api\CompleteRegistrationRequest $request

Returns

\Illuminate\Http\JsonResponse —

forgotPassword()

forgotPassword(\App\Http\Requests\Api\ForgotPasswordRequest  $request) : \Illuminate\Http\JsonResponse

发送重置链接

忘记密码第一步。输入注册邮箱,经过点选验证码校验后, 向邮箱发送密码重置链接。同一邮箱 60 秒内不可重复发送, 链接 30 分钟内有效、单次使用;邮箱未注册时同样返回成功提示, 防止邮箱枚举。

Parameters

\App\Http\Requests\Api\ForgotPasswordRequest $request

Returns

\Illuminate\Http\JsonResponse —

verifyResetToken()

verifyResetToken(\Illuminate\Http\Request  $request) : \Illuminate\Http\JsonResponse

校验重置令牌

GET /api/reset-password/verify-token?token=xxx 返回用户名,供跳转页展示。

Parameters

\Illuminate\Http\Request $request

Returns

\Illuminate\Http\JsonResponse —

resetPassword()

resetPassword(\App\Http\Requests\Api\ResetPasswordRequest  $request) : \Illuminate\Http\JsonResponse

重置密码

忘记密码第二步,在跳转页设置新密码。 输入 token 与新密码,重置后该账号所有会话强制下线。

Parameters

\App\Http\Requests\Api\ResetPasswordRequest $request

Returns

\Illuminate\Http\JsonResponse —

tokenCookie()

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)。

Parameters

string $md5Key
int $ttlMinutes

Returns

\Symfony\Component\HttpFoundation\Cookie —