コード例 #1
0
ファイル: app_helper.py プロジェクト: ongzhixian/Impulse
    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)
コード例 #2
0
ファイル: app_helper.py プロジェクト: ongzhixian/Impulse
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)