如何用LaravelAPI实现登录并返回Token?
- 内容介绍
- 文章标签
- 相关推荐
本文共计752个文字,预计阅读时间需要4分钟。
使用 ``Sanctum` 实现登录接口,返回 `token` 是最轻量级、最接近 API 场景的解决方案;无需碰 `Passport`,除非你真的需要 OAuth2 流程。
为什么不用 Auth::attempt() 直接返回 token
很多人写完 Auth::attempt() 就卡住——它只返回布尔值,不生成 token。Laravel 的传统登录是为 Web 表单设计的,session + cookie 路线和纯 API 的 Authorization: Bearer 天然冲突。
-
Auth::attempt()成功后不会自动创建 API token,也不会返回任何可传递给前端的凭证 - 手动调用
$user->createToken()前,必须确保用户已通过认证(否则会创建 token 给任意邮箱/密码组合) - 如果跳过校验直接 createToken,等于绕过密码验证,存在严重安全漏洞
Sanctum 登录接口怎么写才不踩坑
核心逻辑就三步:查用户 → 校验密码 → 发 token。但顺序和异常处理决定是否被重放或爆破。
本文共计752个文字,预计阅读时间需要4分钟。
使用 ``Sanctum` 实现登录接口,返回 `token` 是最轻量级、最接近 API 场景的解决方案;无需碰 `Passport`,除非你真的需要 OAuth2 流程。
为什么不用 Auth::attempt() 直接返回 token
很多人写完 Auth::attempt() 就卡住——它只返回布尔值,不生成 token。Laravel 的传统登录是为 Web 表单设计的,session + cookie 路线和纯 API 的 Authorization: Bearer 天然冲突。
-
Auth::attempt()成功后不会自动创建 API token,也不会返回任何可传递给前端的凭证 - 手动调用
$user->createToken()前,必须确保用户已通过认证(否则会创建 token 给任意邮箱/密码组合) - 如果跳过校验直接 createToken,等于绕过密码验证,存在严重安全漏洞
Sanctum 登录接口怎么写才不踩坑
核心逻辑就三步:查用户 → 校验密码 → 发 token。但顺序和异常处理决定是否被重放或爆破。

