Laravel Sanctum:現代應用程式中 API 驗證的簡化方法。 API 對於平台間通訊至關重要,Sanctum 提供了一個輕量級解決方案來保護 API,培育強大且可擴展的應用程式。本指南探討了 Sanctum 的設定、功能和用例,包括 SPA 和基於令牌的身份驗證。
Laravel Sanctum 簡化了 API 驗證,提供了兩個關鍵功能:
與更複雜的解決方案不同,Sanctum 的輕量級特性和簡單的配置使其非常適合沒有 OAuth 要求的應用程式。
使用 Composer 安裝 Sanctum:
<code class="language-bash">composer require laravel/sanctum</code>
發布 Sanctum 設定檔:
<code class="language-bash">php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"</code>
這會產生config/sanctum.php
,允許自訂 Sanctum 的設定。
Sanctum 使用一張personal_access_tokens
桌子。建立此表:
<code class="language-bash">php artisan migrate</code>
將 Sanctum 的中間件整合到 api
內的 app/Http/Kernel.php
中間件組:
<code class="language-php">'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ],</code>
使用 routes/api.php
中介軟體確保 auth:sanctum
中的路由安全:
<code class="language-php">use Illuminate\Support\Facades\Route; Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });</code>
使用createToken
方法產生個人存取權杖:
<code class="language-php">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; });</code>
撤銷使用者的登出令牌:
<code class="language-php">Route::post('/logout', function (Request $request) { $request->user()->tokens()->delete(); return response()->json(['message' => 'Logged out successfully']); });</code>
Sanctum 利用基於會話的 SPA 身份驗證。
確保 EnsureFrontendRequestsAreStateful
中間件在 api
中間件組中正確配置。
使用來自 SPA 的經過身份驗證的 AJAX 請求發送 CSRF 令牌:
<code class="language-bash">composer require laravel/sanctum</code>
Laravel Sanctum 提供了一種用戶友好且有效的方法來保護現代應用程式的 API。 其輕量級設計和靈活的 API 簡化了開發人員的身份驗證,使其成為 SPA 和基於令牌的 API 存取的寶貴工具。 在您的專案中嘗試 Sanctum,以充分了解其功能。
以上是使用 Laravel Sanctum 日間建置 API的詳細內容。更多資訊請關注PHP中文網其他相關文章!