3. Exposing Auth APIs
We will add all the backend APIs for auth on /auth/*
. This can be changed by setting the apiBasePath
property in the appInfo
object on the backend and frontend. For the rest of this page, we will assume you are using /auth/*
.
#
Copy this snippet to your handler file- NodeJS
- Python
An example of this can be found here.
auth.js
import supertokens from "supertokens-node";import { middleware } from "supertokens-node/framework/awsLambda";import { getBackendConfig } from "./config";import middy from "@middy/core";import cors from "@middy/http-cors";
supertokens.init(getBackendConfig());
module.exports.handler = middy(middleware()).use(cors({ origin: getBackendConfig().appInfo.websiteDomain, credentials: true, headers: ["Content-Type", ...supertokens.getAllCORSHeaders()].join(", "), methods: "OPTIONS,POST,GET,PUT,DELETE"})).onError(request => { throw request.error;});
auth.py
import nest_asyncio nest_asyncio.apply()
from fastapi import FastAPIfrom starlette.middleware.cors import CORSMiddlewarefrom mangum import Mangum
from supertokens_python import init, get_all_cors_headersfrom supertokens_python.framework.fastapi import get_middleware
import config
init( supertokens_config=config.supertokens_config, app_info=config.app_info, framework=config.framework, recipe_list=config.recipe_list, mode="asgi",)
app = FastAPI(title="SuperTokens Example")app.add_middleware(get_middleware())
app = CORSMiddleware( app=app, allow_origins=[ config.app_info.website_domain ], allow_credentials=True, allow_methods=["GET", "PUT", "POST", "DELETE", "OPTIONS", "PATCH"], allow_headers=["Content-Type"] + get_all_cors_headers(),)
handler = Mangum(app)
important
Notice that we called supertokens.init
above. We will need to call this in all API endpoints that use any functions related to supertokens.