python
from supertokens_python import init, InputAppInfo, SupertokensConfig
from supertokens_python.recipe import passwordless, session
from supertokens_python.recipe.passwordless import ContactPhoneOnlyConfig
from apps.mysupertokens.otp_delivery import async_send_text_message
from apps.mysupertokens.overrides import override_functions
def init_supertokens(site_url,
website_domain,
website_base_path,
connection_uri,
api_key):
# ensure cookie domain is '.example.com' if api is hosted on a subdomain
cookie_domain = site_url.removeprefix("http://").removeprefix("https://")
if len(cookie_domain.split(".")) > 2:
cookie_domain = "." + ".".join(cookie_domain.split(".")[-2:])
init(
app_info=InputAppInfo(
app_name="medhub",
api_domain=site_url,
api_base_path="/auth",
website_domain=website_domain,
website_base_path=website_base_path,
),
supertokens_config=SupertokensConfig(
connection_uri=connection_uri,
api_key=api_key,
),
framework='django',
recipe_list=[
session.init(
override=session.InputOverrideConfig(functions=override_functions),
cookie_domain=cookie_domain,
),
passwordless.init(
flow_type="USER_INPUT_CODE",
contact_config=ContactPhoneOnlyConfig(
create_and_send_custom_text_message=async_send_text_message
)
)
],
mode='wsgi',
)