Laravel Sanctum 是否适合向第三方服务器提供 API 访问权限?

Ali*_*ice 6 php authentication laravel laravel-sanctum

我们构建了一个 API(目前仅包含一条路由),以便向与我们合作的另一家公司提供特定数据的访问权限。

其他公司对我们的端点执行的 API 调用是在服务器端进行的。
该 API 是使用Laravel 8.

为了提供问题的更多背景信息,我们的系统收集我们的 GPS 设备发送的坐标,并且我们希望向其他公司提供对一组特定 GPS 设备的坐标的访问权限。
坐标存储在我们的数据库中,API 路由只是执行 SELECT 查询,仅允许访问这些特定设备的数据。

在互联网上搜索,我发现这Laravel Sanctum可以帮助提供API tokensAPI 的使用。我的问题是,我们可以用于Laravel Sanctum当前的工作流程吗?合适吗?

文档中的示例表明我们可以执行以下操作:

$user->createToken('token-name', ['server:update'])->plainTextToken;
Run Code Online (Sandbox Code Playgroud)

user但是,就我而言,其他公司没有。如果 Laravel Sanctum 可以,我应该创建一个代表该公司的特定用户吗?或者也许是另一个专门针对公司的模型(和数据库表)?即使我们的情况下只有一个。

Usa*_*ama 1

可以为任何具有特征的模型生成令牌HasApiTokens

由于您需要它用于身份验证目的,我认为最简单的解决方案是创建一个代表公司的用户并为该用户生成令牌。

这样,如果用户使用正确的令牌调用 API,Sanctum 将对用户进行身份验证,您可以让用户Auth::user()在 API 操作方法中使用。