def use_jti_claim(jti_claim):
"""
Use a jti claim
:param jti_claim: jti claim to mark as used.
:raises ValueError: when jti_claim is None.
:raises TypeError: when jti_claim is not a valid uuid4.
:raises JtiTokenUsed: when jti_claim has already been used.
"""
if jti_claim is None:
raise ValueError
if not _is_valid(jti_claim):
logger.info('jti claim is invalid', jti_claim=jti_claim)
raise TypeError
try:
jti = UsedJtiClaim(jti_claim)
# pylint: disable=maybe-no-member
db.session.add(jti)
db.session.commit()
except IntegrityError as e:
logger.error('jti claim has already been used', jti_claim=jti_claim)
raise JtiTokenUsed(jti_claim) from e
评论列表
文章目录