Mik*_*chy 8 laravel laravel-sanctum
我正在使用 laravel sainttum 为我的移动应用程序进行 API 身份验证。
我们如何限制每个用户的最大活跃代币数量?
目前,在personal_access_tokenssainttum 生成的表中,没有 user_id 引用。对于当前的表,想象一下如果用户无限制地登录和注销。我们将在表中创建 N 个新令牌。
有一个参考user,即tokenable_type和tokenable_id。在本例中,引用App\Models\User和tokenable_id.
在应用程序的某个位置,您正在为该特定用户创建这些令牌。您可以在此处选择为每个登录会话颁发新令牌,但您也可以要求用户使用旧令牌。这取决于您和应用程序的用例。
但是,如果您要为每个登录会话创建新令牌,请考虑撤销旧令牌(因为它们可能不再使用)。检查圣所文档。
config/sanctum.php令牌在密钥中定义的时间内有效expiration。标准,personal access tokens不会过期,因为expiration密钥设置为null。
回答您的问题:
$user->tokens()->count();,并用它做任何您想做的事情(删除旧令牌,或返回错误)。tokens永久有效,为什么要在每次登录时创建一个新的令牌,而不是要求仍然有效的令牌?或者,您可以创建一个表单,以便用户在忘记旧令牌时请求新令牌,删除旧令牌并颁发新令牌。这样,DB中的所有令牌都是有效的。| 归档时间: |
|
| 查看次数: |
5619 次 |
| 最近记录: |