```python from supertokens_python.recipe.session.a...
# support-questions-legacy
k
Copy code
python
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
            }
        })
    ]
})