Skip to main content

Pre-API Hook

This function is called before any API call is being made to your backend from our frontend SDK. You can use this to change the request body / URL / header or any other request property.

What type of UI are you using?

import ThirdParty from "supertokens-auth-react/recipe/thirdparty";
import EmailPassword from "supertokens-auth-react/recipe/emailpassword";

ThirdParty.init({
preAPIHook: async (context) => {
let url = context.url;
let requestInit = context.requestInit;

let action = context.action;
if (action === "GET_AUTHORISATION_URL") {

} else if (action === "THIRD_PARTY_SIGN_IN_UP") {
// Note: this could either be sign in or sign up.
// we don't know that at the time of the API call
// since all we have is the authorisation code from
// the social provider
}

// events such as sign out are in the
// session recipe pre API hook (See the info box below)

return {
requestInit, url
};

}
})

EmailPassword.init({
preAPIHook: async (context) => {
let url = context.url;
let requestInit = context.requestInit;

let action = context.action;
if (action === "EMAIL_EXISTS") {

} else if (action === "EMAIL_PASSWORD_SIGN_IN") {

} else if (action === "EMAIL_PASSWORD_SIGN_UP") {

} else if (action === "SEND_RESET_PASSWORD_EMAIL") {

} else if (action === "SUBMIT_NEW_PASSWORD") {

}

// events such as sign out are in the
// session recipe pre API hook (See the info box below)

return {
requestInit, url
};

}
})

Reading custom request information in the backend

Visit this page to learn how to read custom headers etc from the request on the backend.