def load_access_info_cache(**_kwargs): ret = {} client_pk, user_pk, scope, is_refreshable, expire, user_secret_key = oauth2_server.reverse_access_token( _kwargs["access_token"] ) ret["_ut_oauth2_client_pk"] = client_pk ret["_ut_oauth2_user_pk"] = user_pk ret["_ut_oauth2_scope"] = scope ret["_ut_oauth2_secret_key"] = user_secret_key ret["_ut_oauth2_expire"] = expire ret["_ut_oauth2_access_token"] = _kwargs["access_token"].encode("utf8") return ret
def get_oauth2_authorization_info(request): if not hasattr(request, "_cached_oauth2_authorization_info"): access_token = request.access_token access_info = {} if access_token: # TODO: session -> cache, api doesn't allow session ... try: is_access_token_valid = False access_info = access_info_cache.get(access_token=access_token) if access_info.get("_ut_oauth2_access_token"): if access_info["_ut_oauth2_access_token"] != access_token.encode("utf8"): is_access_token_valid = False else: uask = oauth2_server.get_user_secret_key( access_info["_ut_oauth2_user_pk"], access_info["_ut_oauth2_client_pk"] ) if access_info["_ut_oauth2_secret_key"] != uask: is_access_token_valid = False elif access_info["_ut_oauth2_expire"] - CurrentTimestamp()() <= 0: is_access_token_valid = False else: is_access_token_valid = True if not is_access_token_valid: client_pk, user_pk, scope, is_refreshable, expire, user_secret_key = oauth2_server.reverse_access_token( access_token ) access_info["_ut_oauth2_client_pk"] = client_pk access_info["_ut_oauth2_user_pk"] = user_pk access_info["_ut_oauth2_scope"] = scope access_info["_ut_oauth2_secret_key"] = user_secret_key access_info["_ut_oauth2_expire"] = expire access_info["_ut_oauth2_access_token"] = access_token.encode("utf8") except: import traceback traceback.print_exc() access_info["_ut_oauth2_client_pk"] = None access_info["_ut_oauth2_scope"] = None access_info["_ut_oauth2_secret_key"] = None access_info["_ut_oauth2_expire"] = None access_info["_ut_oauth2_access_token"] = None access_info["_ut_oauth2_user_pk"] = None else: access_info["_ut_oauth2_client_pk"] = None access_info["_ut_oauth2_scope"] = None access_info["_ut_oauth2_secret_key"] = None access_info["_ut_oauth2_expire"] = None access_info["_ut_oauth2_access_token"] = None access_info["_ut_oauth2_user_pk"] = None request._cached_oauth2_authorization_info = AuthorizationInfo() request._cached_oauth2_authorization_info.secret_key = access_info.get("_ut_oauth2_secret_key") request._cached_oauth2_authorization_info.client_pk = access_info.get("_ut_oauth2_client_pk") request._cached_oauth2_authorization_info.user_pk = access_info.get("_ut_oauth2_user_pk") request._cached_oauth2_authorization_info.scope = access_info.get("_ut_oauth2_scope") request._cached_oauth2_authorization_info.expire = access_info.get("_ut_oauth2_expire") return request._cached_oauth2_authorization_info return request._cached_oauth2_authorization_info