【发布时间】:2021-09-16 03:20:39
【问题描述】:
我花了几天时间在 Laravel Sanctum 上试图弄清楚如何设置我的身份验证系统。
上下文
我正在为我的公司构建一个门票网络应用程序,为此我决定构建一个 API 和一个使用该 API 的 React 前端应用程序。该应用程序的最终用户需要一个帐户来管理工单,因此我在数据库中创建了一个用户表,并为 API 创建了多个路由来创建、删除和更新用户。为了管理用户 api 身份验证,我决定使用 Laravel Sanctum 和他内置的基于会话的 SPA 身份验证系统。
为此,我按照指南设置了所有需求,以确保前端已准备好与 laravel sanctum 一起使用。这是我用于 api 中间件的 Kernel.php:
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
以及 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']);
问题
我必须构建一个非 Web 应用程序,特别是一个 Windows 服务,它需要在数据库中获取数据并使用 API 的 /api/tickets 端点和 POST 方法来使用这些数据创建一个新票证.
我知道这个 futur windows-service 不是前端应用程序,所以我不能使用 SPA 身份验证系统。相反,我想使用带有 Laravel Sanctum 的令牌来验证服务。
我的问题是:
- 如何实现这一点并将
users身份验证和service身份验证。 - 因为我的 api 包含
http://myapi.net/loginethttp://myapi.net/logout用于最终用户身份验证,我需要吗 创建类似api/auth/service路由来发送和删除令牌? - 我应该在我的数据库中创建一个名为
service的新表还是留下来? 与user表?
【问题讨论】:
标签: laravel authentication laravel-sanctum