我花了几天时间在 Laravel Sanctum 上尝试弄清楚如何设置我的身份验证系统。
我正在为我的公司构建一个门票 Web 应用程序,为此我决定构建一个 API 和一个使用该 API 的 React 前端应用程序。该应用程序的最终用户需要一个帐户来管理票证,因此我在数据库中创建一个用户表,并为 API 创建多个路由来创建、删除和更新用户。为了管理用户 api 身份验证,我决定使用 Laravel Sanctum 及其基于会话的内置 SPA 身份验证系统。
为此,我遵循指南并设置所有需求,以确保前端准备好与 Laravel Santum 一起使用。这是我的 api 中间件的 Kernel.php :
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
Run Code Online (Sandbox Code Playgroud)
web.php 中的路由通过 Laravel Sanctum SPA 身份验证登录/注销用户。
<?php
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
Route::post('/login', [UserController::class, 'login']);
Route::get('/logout', [UserController::class, 'logout']);
Run Code Online (Sandbox Code Playgroud)
我必须构建一个非 Web 应用程序,特别是一个 Windows 服务,它需要在数据库中获取数据,并使用/api/ticketsAPI 的端点和POST方法来使用这些数据创建新票证。
我知道这个未来的 Windows 服务不是前端应用程序,所以我无法使用 SPA 身份验证系统。相反,我想使用 Laravel Sanctum 的令牌来验证服务。
我的问题是:
users身份验证和service身份验证分开。 …