Laravel Sanctum:现代应用程序中 API 身份验证的简化方法。 API 对于平台间通信至关重要,Sanctum 提供了一个轻量级解决方案来保护 API,培育强大且可扩展的应用程序。本指南探讨了 Sanctum 的设置、功能和用例,包括 SPA 和基于令牌的身份验证。
了解 Laravel Sanctum
Laravel Sanctum 简化了 API 身份验证,提供了两个关键功能:
- 基于令牌的身份验证:非常适合外部服务或移动应用程序访问的 API。
- 基于会话的身份验证:最适合前端和后端共享同一域的单页应用程序 (SPA)。
与更复杂的解决方案不同,Sanctum 的轻量级特性和简单的配置使其非常适合没有 OAuth 要求的应用程序。
实现 Laravel Sanctum
第 1 步:安装
使用 Composer 安装 Sanctum:
composer require laravel/sanctum
第 2 步:发布配置
发布 Sanctum 配置文件:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
这会生成config/sanctum.php
,允许自定义 Sanctum 的设置。
第3步:数据库迁移
Sanctum 使用一张personal_access_tokens
桌子。创建此表:
php artisan migrate
第 4 步:中间件配置
将 Sanctum 的中间件集成到 api
内的 app/Http/Kernel.php
中间件组:
'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ],
基于令牌的身份验证实践
第 1 步:路由保护
使用 routes/api.php
中间件确保 auth:sanctum
中的路由安全:
use Illuminate\Support\Facades\Route; Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
第 2 步:代币生成
使用createToken
方法生成个人访问令牌:
use App\Models\User; use Illuminate\Http\Request; Route::post('/login', function (Request $request) { $user = User::where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { return response()->json(['message' => 'Invalid credentials'], 401); } return $user->createToken('auth_token')->plainTextToken; });
第 3 步:令牌撤销
撤销用户的注销令牌:
Route::post('/logout', function (Request $request) { $request->user()->tokens()->delete(); return response()->json(['message' => 'Logged out successfully']); });
单页应用程序 (SPA) 集成
Sanctum 利用基于会话的 SPA 身份验证。
第 1 步:CSRF 保护
确保 EnsureFrontendRequestsAreStateful
中间件在 api
中间件组中正确配置。
第 2 步:前端配置
使用来自 SPA 的经过身份验证的 AJAX 请求发送 CSRF 令牌:
composer require laravel/sanctum
安全最佳实践
- 令牌安全:安全地存储令牌(例如,在仅限 HTTP 的 cookie 中)并防止客户端暴露。
- 令牌过期:实施令牌过期以减轻与泄漏令牌相关的风险。
- 范围限制:定义令牌的特定范围以控制其权限。
结论
Laravel Sanctum 提供了一种用户友好且有效的方法来保护现代应用程序的 API。 其轻量级设计和灵活的 API 简化了开发人员的身份验证,使其成为 SPA 和基于令牌的 API 访问的宝贵工具。 在您的项目中尝试 Sanctum,以充分了解其功能。
以上是使用 Laravel Sanctum 日间构建 API的详细内容。更多信息请关注PHP中文网其他相关文章!

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用