index.jsx
if(sessionStorage.getItem("state") == null {
let state = await axios.post("https://backend.<mydomain.tld>/oauth/login");
sessionStorage.setItem("state", state.data);
} else {
const search new URLSearchParams(location.search);
if(search.get("state") == sessionStorage.getItem("state")) {
const code = search.get("code");
sessionStorage.setItem("code", code);
var authorizationData = new URLSearchParams();
authorizationData.append("code", code);
authorizationData.append("client_id", "<service-client-id>");
authorizationData.append("client_secret", "<service-client-secret");
authorizationData.append("redirect_uri", "https://<mydomain.tld>/<path>/<to>/<login>/");
authorizationData.append("grant_type", "authorization_code");
let response = axios.post("https://auth.<mydomain.tld>/application/o/token/", authorizationData, {
headers: {
'Access-Control-Allow-Credentials': 'true',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*',
'Access-Control-Allow-Headers': '*'.
}
});
}
}