export const parseAndSubmitAuthorizeForm = async ( response: string, serverUrl: string ) => { let authUrl: string | null = null const params: any = {} const responseBody = response.split("")[1].split("")[0] const bodyElement = document.createElement("div") bodyElement.innerHTML = responseBody const form = bodyElement.querySelector("#application_authorization") authUrl = form ? serverUrl + form.getAttribute("action") : null const inputs: any = form?.querySelectorAll("input") for (const input of inputs) { if (input.name === "user_oauth_approval") { input.value = "true" } params[input.name] = input.value } const formData = new FormData() for (const key in params) { if (params.hasOwnProperty(key)) { formData.append(key, params[key]) } } return new Promise((resolve, reject) => { if (authUrl) { fetch(authUrl, { method: "POST", credentials: "include", body: formData, referrerPolicy: "same-origin" }) .then((res) => res.text()) .then((res) => { resolve(res) }) } else { reject("Auth form url is null") } }) }