laravel Sanctum如何为移动App生成API令牌_Laravel Sanctum移动端API令牌生成方法
发布时间 - 2025-10-03 00:00:00 点击率:次Laravel Sanctum通过个人访问令牌实现移动端API认证,需安装并发布配置后迁移数据表,在User模型引入HasApiTokens;登录时验证用户并调用createToken生成明文令牌返回;移动端后续请求在Authorization头携带Bearer令牌,由auth:sanctum中间件认证;建议为设备独立生成令牌、提供登出删除接口、定期清理无效令牌并可扩展有效期管理,适用于轻量级移动应用对接。
Laravel Sanctum 为移动 App 提供了一种轻量级的 API 认证机制,适合用于原生或跨平台移动端应用。它通过生成持久化的个人访问令牌(Personal Access Tokens)实现用户认证,而不是依
赖传统的 session 机制。以下是具体实现方式。
启用 Sanctum 并配置移动端认证
安装 Sanctum 后,需正确配置以支持移动端请求:
- 使用 Composer 安装 Sanctum:composer require laravel/sanctum
- 发布配置和迁移文件:php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
- 运行迁移命令创建数据表:php artisan migrate
- 在 User 模型中引入 HasApiTokens trait
确保 config/sanctum.php 中的 stateful 配置为空或不包含移动端域名,因为移动端通常使用无状态认证。
为移动 App 创建 API 令牌
移动端用户登录后,服务器应生成一个令牌返回给客户端:
- 创建登录接口,验证用户名和密码
- 验证成功后,调用用户的 createToken 方法生成令牌
- 返回令牌的明文字符串给 App,用于后续请求头中的认证
$user = User::where('email', $request->email)->first();
if ($user && Hash::check($request->password, $user->password)) {
$token = $user->createToken('mobile-token')->plainTextToken;
return response()->json(['token' => $token]);
}
移动端请求中使用令牌
App 在后续请求中需携带该令牌到请求头:
- 设置请求头 Authorization: Bearer [token]
- Laravel Sanctum 会自动解析此令牌并认证用户
- 注意:Sanctum 的 Bearer 令牌实际存储在数据库中,明文仅在创建时暴露一次
确保中间件 auth:sanctum 应用于需要保护的路由。
安全与令牌管理建议
为提升安全性,建议:
- 为不同设备生成独立令牌,便于单独撤销
- 提供登出接口,调用 $user->currentAccessToken()->delete()
- 定期清理过期或未使用的令牌
- 考虑设置令牌有效期(Sanctum 默认长期有效,可自行扩展)
基本上就这些。Sanctum 简单易用,特别适合移动端与 Laravel 后端对接的场景。关键是生成令牌、安全传输、合理管理生命周期。
# php
# word
# laravel
# js
# json
# composer
# app
# access
# session
# 中间件
# if
# require
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
再谈Python中的字符串与字符编码(推荐)
js实现点击每个li节点,都弹出其文本值及修改
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
如何在建站宝盒中设置产品搜索功能?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
浅谈javascript alert和confirm的美化
BootStrap整体框架之基础布局组件
如何破解联通资金短缺导致的基站建设难题?
Laravel如何使用Service Container和依赖注入?(代码示例)
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
python中快速进行多个字符替换的方法小结
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
如何解决hover在ie6中的兼容性问题
Laravel如何使用Blade组件和插槽?(Component代码示例)
如何将凡科建站内容保存为本地文件?
如何快速上传自定义模板至建站之星?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Laravel如何记录自定义日志?(Log频道配置)
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
零服务器AI建站解决方案:快速部署与云端平台低成本实践
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Android利用动画实现背景逐渐变暗
教学论文网站制作软件有哪些,写论文用什么软件
?
如何有效防御Web建站篡改攻击?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
如何在 Pandas 中基于一列条件计算另一列的分组均值
Python面向对象测试方法_mock解析【教程】
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
如何用wdcp快速搭建高效网站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
焦点电影公司作品,电影焦点结局是什么?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
青岛网站建设如何选择本地服务器?
,网页ppt怎么弄成自己的ppt?
WordPress 子目录安装中正确处理脚本路径的完整指南
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Laravel Session怎么存储_Laravel Session驱动配置详解
如何用已有域名快速搭建网站?

