为用户查找现有的 JWT 令牌

Find existing JWT token for user

我有一个功能可以为用户手动创建一个新的 AccessToken(使用 rest_framework_simplejwt 库):

from rest_framework_simplejwt.tokens import AccessToken

def create_access_token_for_user(user):
    access_token = AccessToken.for_user(user)

现在我正在尝试编写一个测试来验证这是否确实按预期工作,但我似乎找不到任何方法来为给定用户获取 AccessToken。测试应该类似于:

def test_access_token_created(client):
    user = create_user()
    create_access_token_for_user(user)

    access_token = AccessToken.get_token_for_user(user)  # This, but real

    assert access_token is not None  # Or some check to see if it exists

rest_framework_simplejwt docs 似乎没有任何东西可以做到这一点,或者至少没有我能够正确使用的东西。

我不知道库背后的确切实现,但通常 JWT 是无状态的,这意味着它不会存储在您的服务器中的任何位置(而不是在您的数据库中),所以不要考虑 AccessToken作为模型,您可以查询以查找相关用户或为哪个用户生成了哪个令牌。

此外,通常没有必要测试外部库,至少如果它很流行的话。您可以参考官方仓库中开发者编写的测试。