shashank0959
04/01/2024, 1:36 PMconst doLogin = async (data) => {
if (data.credential) {
await getThirdPartyAuthorisationURLWithQueryParamsAndSetState({
thirdPartyId: "google",
frontendRedirectURI: window.location.toString(),
});
const stateInfo = await getThirdPartyStateAndOtherInfoFromStorage();
if (data.credential && stateInfo !== undefined) {
const response = await thirdPartySignInAndUp({
userContext: {
id_token: data.credential,
state: stateInfo.stateForAuthProvider,
},
});
if (response.status === "OK") {
localStorage.setItem(
"access-token",
response.fetchResponse.headers.get("st-access-token")
);
localStorage.setItem(
"refresh-token",
response.fetchResponse.headers.get("st-refresh-token")
)
callbackUrl?.toLowerCase()?.includes(DECCAN_URL) &&
localStorage.setItem("tab_detail", "Email");
if (
response.createdNewRecipeUser &&
response.user.loginMethods.length === 1
) {
navigate("/auth/authenticate");
} else {
window.location.assign(
`${callbackUrl}?access_token=${response.fetchResponse.headers.get(
"st-access-token"
)}&refresh_token=${response.fetchResponse.headers.get(
"st-refresh-token"
)}`
);
}
} else if (response.status === "SIGN_IN_UP_NOT_ALLOWED") {
// automatic account linking.
} else {
navigate(`/auth?${REDIRECT_URL}=${callbackUrl}`); // redirect back to login page
}
}
}
};