kakashi_44
11/23/2021, 10:17 AMpython
from supertokens_python.recipe.session.asyncio import revoke_all_sessions_for_user
from supertokens_python import init
from supertokens_python.recipe import session
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from supertokens_python.framework.fastapi.fastapi_request import FastApiRequest
from typing import Union
def override_session_functions(original_implementation):
original_create_new_session = original_implementation.create_new_session
async def create_new_session(request: FastApiRequest, user_id: str, jwt_payload: Union[dict, None] = None, session_data: Union[dict, None] = None):
await revoke_all_sessions_for_user(user_id)
# to access original request object, just do:
original_request = request.original
return await original_create_new_session(request, user_id, jwt_payload, session_data)
original_implementation.create_new_session = create_new_session
return original_implementation
init({
'app_info': {...},
'supertokens': {...},
'framework': '...',
'recipe_list': [
session.init({
'override': {
'functions': override_session_functions
}
})
]
})