Мой пример использования - создание токена для сброса пароля API. Что я делаю с его опасной библиотекой на python.
https://pythonhosted.org/itsdangerous/.
Этот токен (в ссылке сброса пароля) пересылается по электронной почте клиенту, токен имеет ограничение по времени истечения, которое подтверждается, и после этого сброс пароля может пройти успешно.
Проблема здесь в том, что после успешного сброса пароля, как я могу убедиться, что тот же токен (ссылка электронной почты) не может быть снова использован в течение срока действия. Я вижу, что его опасно есть URLSafeTimedSerializer, который помогает на этапе проверки определить, сколько лет токену. С другой стороны, TimedJSONWebSignatureSerializer помогает установить время истечения при создании токена. Пожалуйста, проверьте прикрепленный кусок кода.
Есть ли лучший способ принудительно истечь токен? Если нет, то как лучше всего сохранить токен, в котором он использовался?
import itsdangerous
key = "test"
# signer = itsdangerous.URLSafeTimedSerializer(key)
signer = itsdangerous.TimedJSONWebSignatureSerializer(key, expires_in=5)
email = "email@test.com"
# token = email # to be used with URLSafeTimedSerializer
token = signer.dumps({"email": email})
print token
# print signer.loads(token, max_age=5) # to be used with URLSafeTimedSerializer
print str(signer.loads(token)["email"]) # to be used with TimedJSONWebSignatureSerializer