index.jsx
@@ -0,0 +1,26 @@
+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': '*'.
+ }
+ });
+ }
+}
\ No newline at end of file