def signer_check(signer, info): try: old, signer = signer.split('.') except (AttributeError, ValueError): return False if old != info: return False mac = hmac.new(COOKIE_SECRET.encode(), digestmod=hashlib.sha256) mac.update(info.encode()) check = mac.digest() return base64.urlsafe_b64decode(signer) == check
def signer_encode(info): mac = hmac.new(COOKIE_SECRET.encode(), digestmod=hashlib.sha256) mac.update(info.encode()) signer = base64.urlsafe_b64encode(mac.digest()).decode() return "%s.%s" % (info, signer)