def wrapper(*args, **kwargs): app_token = request.cookies.get( app_settings['application']['app_token']) if not app_token: logging.info(app_token) return redirect("/login?from={0}".format(request.path)) # Else test app_token try: crypto_struct = { 'key': app_secrets['login']['aes_key_hex'], 'iv': app_secrets['login']['aes_iv_hex'] } plain_text = aes_decrypt_from_hex(crypto_struct, app_token) tokens = plain_text.split("|") expiry_date = datetime.strptime(tokens[2], "%Y%m%d") if datetime.utcnow() > expiry_date: #expired return redirect("/login?from={0}".format(request.path)) # claims = google.oauth2.id_token.verify_firebase_token(id_token, firebase_request_adapter) # from modules.registry import create_auth_user # create_auth_user(claims['email'], claims['name']) # if 'user_claims' not in g: # g.user_claims = claims except ValueError as error: return redirect("/login?from={0}".format(request.path)) return fn(*args, **kwargs)
def is_valid_app_token(app_token): if not app_token: return (False, None) try: crypto_struct = { 'key': app_secrets['login']['aes_key_hex'], 'iv': app_secrets['login']['aes_iv_hex'] } plain_text = aes_decrypt_from_hex(crypto_struct, app_token) tokens = plain_text.split("|") expiry_date = datetime.strptime(tokens[2], "%Y%m%d") logging.info("{0} vs {1}".format(expiry_date, datetime.utcnow())) if datetime.utcnow() > expiry_date: return (False, None) return (True, tokens) except ValueError: return (False, None)