当前位置: 首页
编程语言
LaravelAPI如何实现登录_Laravel登录接口与Token返回【教程】

LaravelAPI如何实现登录_Laravel登录接口与Token返回【教程】

热心网友 时间:2026-04-28
转载

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

Lara velAPI如何实现登录_Lara vel登录接口与Token返回【教程】

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

在 Lara vel 中构建 API 登录接口,Sanctum 通常是那个最轻量、最贴合场景的选择。它直接返回 token 的流程非常清晰。至于 Passport,除非你的项目确实需要完整的 OAuth2 流程,否则完全可以先放一边。

为什么不用 Auth::attempt() 直接返回 token

很多开发者踩的第一个坑,就是用了 Auth::attempt() 之后发现无从下手——它只返回一个布尔值,根本不生成 token。这其实不怪它,因为 Lara vel 传统的认证系统是为 Web 表单登录设计的,依赖 sessioncookie。这套机制和纯 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.phpguards.api 的 driver 是否设置为 sanctum。否则,后续的认证中间件可能会静默失败,让你排查半天。

POST /login 接口的请求体和响应要严格对齐

接口契约必须清晰。前端传过来的字段名、后端返回的状态码和响应结构,错一个都可能让调用方反复抓包调试。

  • 接收字段最好固定为 emailpassword。别自己发明 usernamepasswd —— Sanctum 可不会帮你做字段映射。
  • 成功响应状态码用 200,响应体里必须包含 token 字段,格式一目了然:
    {"token": "1|abc..."}
  • 失败一律返回 401。这里要区分清楚:422 通常用于表单验证错误,而密码错误是认证失败,不是服务器内部错误,所以也别用 500
  • 响应里不需要塞入完整的 user 对象。token 本身不携带用户信息,后续请求通过 auth:sanctum 中间件来解析 token 并自动加载对应用户。

最后,还有一个容易忽略的实践细节:Sanctum 默认创建的 token 是永不过期的,注销需要手动调用 $user->tokens()->delete()。前端拿到 token 后,需要将其存入 localStorage 或内存变量中,不能依赖 cookie,否则在跨域请求时可能无法携带出去。

来源:https://www.php.cn/faq/2383638.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Debian环境下Node.js日志清理技巧有哪些

Debian环境下Node.js日志清理技巧有哪些

Debian服务器Node js日志管理与轮转最佳实践指南 高效的日志管理是保障Node js应用稳定运行与快速排障的关键环节。在Debian服务器环境中,随着应用持续运行,日志文件会不断累积,若不加以妥善管理,极易导致磁盘空间耗尽,进而引发服务中断。本文将深入解析几种在Debian系统上管理Nod

时间:2026-04-28 21:37
Debian JS日志如何自动化处理

Debian JS日志如何自动化处理

Debian JS日志自动化处理方案 处理服务器日志,尤其是Node js应用产生的日志,如果全靠手动,那简直就是运维人员的噩梦。文件无限增长、问题难以追溯、磁盘空间告急……这些问题,其实一套清晰的自动化方案就能搞定。下面就来聊聊如何在Debian系统上,为你的JS应用搭建一个从生成、轮转、采集到分

时间:2026-04-28 21:37
Debian JS日志如何审计

Debian JS日志如何审计

Debian JS日志审计实操指南 一 审计目标与总体架构 要搭建一套有效的日志审计体系,首先得把目标和框架理清楚。这事儿其实不复杂,核心就三件事:明确范围、打通链路、保障安全。 明确审计范围:一个完整的JS应用生态,日志来源是分散的。前端浏览器的JS异常、后端的Node js服务日志、承载服务的W

时间:2026-04-28 21:37
Debian JS日志如何分析性能瓶颈

Debian JS日志如何分析性能瓶颈

Debian 环境下用 JS 日志定位性能瓶颈的实操指南 性能问题就像系统里的“暗伤”,平时不易察觉,一旦爆发却足以让应用瘫痪。好在,高质量的日志就是最好的“诊断报告”。今天,我们就来聊聊在 Debian 环境中,如何从海量 JS 日志里,精准揪出那些拖慢系统的“元凶”。 一 准备可度量的日志 定位

时间:2026-04-28 21:37
Debian JS日志如何监控

Debian JS日志如何监控

Debian 上监控 Ja vaScript 日志的实用方案 一 场景与总体架构 聊到Ja vaScript日志监控,首先得把场景分清楚。前端和后端,完全是两码事。 前端 JS(浏览器)这块,核心是捕捉运行时的错误和用户行为。通常的做法是接入像 Sentry 这类专业的前端异常监控服务。当然,开发阶

时间:2026-04-28 21:36
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程