Estoy trabajando en el código de solicitud de google oauth2. Necesito hacer clic en la aplicación de un botón y abrir una nueva ventana para iniciar el flujo de google oauth2. Tengo un uri de redirección configurado como parámetro. Escribo esta función pero tengo este error en la función setInterval:
Blocked a frame with origin from accessing a cross-origin frameesta es la funcion:
oauth2SignIn() { // Google's OAuth 2.0 endpoint for requesting an access token const oauth2Endpoint = 'https://accounts.google.com/o/oauth2/v2/auth'; // Create element to open OAuth 2.0 endpoint in new window. let form = document.createElement('form'); form.setAttribute('method', 'GET'); // Send as a GET request. form.setAttribute('target', 'previewWindow'); form.setAttribute('id', 'googleFormAuth'); form.setAttribute('action', oauth2Endpoint); // Parameters to pass to OAuth 2.0 endpoint. const params = { client_id: environment.GAPI_CLIENT_ID, redirect_uri: 'https://my-app/services/api/api/google/calendar/callback', scope: 'https://www.googleapis.com/auth/calendar.readonly', state: 'try_sample_request', response_type: 'code', access_type: 'offline', prompt: 'consent', }; // Add form parameters as hidden input values. for (let p in params) { let input = document.createElement('input'); input.setAttribute('type', 'hidden'); input.setAttribute('name', p); input.setAttribute('value', params[p]); form.appendChild(input); } // Add form to page and submit it to open the OAuth 2.0 endpoint. document.documentElement.appendChild(form); let newWin = window.open('', 'previewWindow', 'popup'); form.submit(); setInterval(()=> { if(newWin.location.href.includes('my-app') { newWin.close(); } }) }Mi enfoque es cerrar newWin cuando la URL cambió. También tengo que leer el documento porque a veces tengo un error impreso en el dom, como un error 401 por parte del servidor. ¿Es posible solucionar este problema?