mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
21 lines
651 B
Python
21 lines
651 B
Python
import hashlib
|
|
|
|
from django.core.signing import BadSignature, TimestampSigner
|
|
|
|
|
|
def get_token(request, answer):
|
|
if not request.session.session_key:
|
|
request.session.create()
|
|
payload = '{}:{}'.format(request.session.session_key, answer.pk)
|
|
signer = TimestampSigner()
|
|
return signer.sign(hashlib.sha1(payload.encode()).hexdigest())
|
|
|
|
|
|
def check_token(request, answer, token):
|
|
payload = hashlib.sha1('{}:{}'.format(request.session.session_key, answer.pk).encode()).hexdigest()
|
|
signer = TimestampSigner()
|
|
try:
|
|
return payload == signer.unsign(token, max_age=3600 * 24)
|
|
except BadSignature:
|
|
return False
|