为用户查找现有的 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作为模型,您可以查询以查找相关用户或为哪个用户生成了哪个令牌。
此外,通常没有必要测试外部库,至少如果它很流行的话。您可以参考官方仓库中开发者编写的测试。
我有一个功能可以为用户手动创建一个新的 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作为模型,您可以查询以查找相关用户或为哪个用户生成了哪个令牌。
此外,通常没有必要测试外部库,至少如果它很流行的话。您可以参考官方仓库中开发者编写的测试。