Laravel Sanctum SPA - 如何确保用户仅在一台设备上登录?

Laravel Sanctum SPA - how to make sure user is only logged in on one device?

我目前正在使用 Santum SPA 验证并注意到我可以同时从 mozilla 和 chrome 登录。这意味着用户可以从不同的设备登录。如何使用 Sanctum SPA 身份验证来防止这种情况?

问题是我认为如果我使用 Sanctum 令牌我应该能够做到这一点,因为我可以轻松检查用户是否有现有令牌。

$tokens = $user->tokens;

但是,文档说:

You should not use API tokens to authenticate your own first-party SPA. Instead, use Sanctum's built-in SPA authentication features.

如果我为 SPA 使用 sanctum 个代币,我将失去的东西:

This approach to authentication provides the benefits of CSRF protection, session authentication, as well as protects against leakage of the authentication credentials via XSS.

或者这是否超出了 Laravel Sanctum 的范围?

只要用户使用新令牌从新设备登录,您就可以删除用户的其他令牌。

$user->tokens()->where('id', '!=' ,$user->currentAccessToken()->id)->delete();

谷歌搜索后,我确信 Laravel SPA Sanctum out-of-the-box.

中不包含此功能

但我发现这个 youtube video 让这成为可能。