LaravelAPI如何实现登录_Laravel登录接口与Token返回【教程】
用 Sanctum 实现登录接口最轻量,核心是查用户→校验密码→发 token;Auth::attempt() 不适用 API 场景,因其仅返回布尔值且依赖 session,需改用 Hash::check() 显式验证,再调用 $user->createToken() 返回 plainTextToken。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
在 Lara vel 中构建 API 登录接口,Sanctum 通常是那个最轻量、最贴合场景的选择。它直接返回 token 的流程非常清晰。至于 Passport,除非你的项目确实需要完整的 OAuth2 流程,否则完全可以先放一边。
为什么不用 Auth::attempt() 直接返回 token
很多开发者踩的第一个坑,就是用了 Auth::attempt() 之后发现无从下手——它只返回一个布尔值,根本不生成 token。这其实不怪它,因为 Lara vel 传统的认证系统是为 Web 表单登录设计的,依赖 session 和 cookie。这套机制和纯 API 场景下使用的 Authorization: Bearer 头,从根子上就是两码事。
- 关键点在于,
Auth::attempt()成功后,并不会自动创建 API token,也不会返回任何能给前端直接使用的凭证。 - 如果你想手动调用
$user->createToken(),必须确保用户已经通过了认证。否则,岂不是给任意邮箱密码组合都能创建 token? - 如果跳过密码校验直接去 createToken,那就等于完全绕过了安全验证,会留下严重的安全漏洞。
Sanctum 登录接口怎么写才不踩坑
核心逻辑说起来就三步:查用户、校验密码、发放 token。但这里的顺序和异常处理,直接决定了接口能否抵御重放攻击或密码爆破。
- 第一步,先用
User::where('email', $request->email)->first()把用户查出来。这里不建议用Auth::attempt()包裹整个流程,因为它在失败时会触发 Lara vel 默认的“登录失败锁定”机制,这对 API 来说并不友好。 - 用户存在?好,接下来用
Hash::check($request->password, $user->password)进行显式的密码比对。如果失败,直接返回401 Unauthorized响应。 - 密码也对了,这时候才调用
$user->createToken('api-token')。注意,返回给前端的是$token->plainTextToken,而不是$token->token这个哈希值。 - 还有一个小细节:务必检查
config/auth.php里guards.api的 driver 是否设置为sanctum。否则,后续的认证中间件可能会静默失败,让你排查半天。
POST /login 接口的请求体和响应要严格对齐
接口契约必须清晰。前端传过来的字段名、后端返回的状态码和响应结构,错一个都可能让调用方反复抓包调试。
- 接收字段最好固定为
email和password。别自己发明username或passwd——Sanctum可不会帮你做字段映射。 - 成功响应状态码用
200,响应体里必须包含token字段,格式一目了然:{"token": "1|abc..."} - 失败一律返回
401。这里要区分清楚:422通常用于表单验证错误,而密码错误是认证失败,不是服务器内部错误,所以也别用500。 - 响应里不需要塞入完整的
user对象。token 本身不携带用户信息,后续请求通过auth:sanctum中间件来解析 token 并自动加载对应用户。
最后,还有一个容易忽略的实践细节:Sanctum 默认创建的 token 是永不过期的,注销需要手动调用 $user->tokens()->delete()。前端拿到 token 后,需要将其存入 localStorage 或内存变量中,不能依赖 cookie,否则在跨域请求时可能无法携带出去。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Debian环境下Node.js日志清理技巧有哪些
Debian服务器Node js日志管理与轮转最佳实践指南 高效的日志管理是保障Node js应用稳定运行与快速排障的关键环节。在Debian服务器环境中,随着应用持续运行,日志文件会不断累积,若不加以妥善管理,极易导致磁盘空间耗尽,进而引发服务中断。本文将深入解析几种在Debian系统上管理Nod
Debian JS日志如何自动化处理
Debian JS日志自动化处理方案 处理服务器日志,尤其是Node js应用产生的日志,如果全靠手动,那简直就是运维人员的噩梦。文件无限增长、问题难以追溯、磁盘空间告急……这些问题,其实一套清晰的自动化方案就能搞定。下面就来聊聊如何在Debian系统上,为你的JS应用搭建一个从生成、轮转、采集到分
Debian JS日志如何审计
Debian JS日志审计实操指南 一 审计目标与总体架构 要搭建一套有效的日志审计体系,首先得把目标和框架理清楚。这事儿其实不复杂,核心就三件事:明确范围、打通链路、保障安全。 明确审计范围:一个完整的JS应用生态,日志来源是分散的。前端浏览器的JS异常、后端的Node js服务日志、承载服务的W
Debian JS日志如何分析性能瓶颈
Debian 环境下用 JS 日志定位性能瓶颈的实操指南 性能问题就像系统里的“暗伤”,平时不易察觉,一旦爆发却足以让应用瘫痪。好在,高质量的日志就是最好的“诊断报告”。今天,我们就来聊聊在 Debian 环境中,如何从海量 JS 日志里,精准揪出那些拖慢系统的“元凶”。 一 准备可度量的日志 定位
Debian JS日志如何监控
Debian 上监控 Ja vaScript 日志的实用方案 一 场景与总体架构 聊到Ja vaScript日志监控,首先得把场景分清楚。前端和后端,完全是两码事。 前端 JS(浏览器)这块,核心是捕捉运行时的错误和用户行为。通常的做法是接入像 Sentry 这类专业的前端异常监控服务。当然,开发阶
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

